`
芥末Julie
  • 浏览: 7118 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论
阅读更多

1.Java的图形界面
      1.awt   java.awt
      2.swing   javax.swing

 

2.常用的组件:分为容器组件和元素组件
(1)容器组件
                       JFrame   窗体类  (顶级容器)
                       JPanel   面板类  (最灵活的容器)
                       JMenuBar  菜单栏
                       JMenu   菜单类

注意:每个容器都会有一个默认的布局,JFrame的默认布局为BorderLayout(边框布局),JPanel的默认布局为FlowLayout(流式布局)。

(2)元素组件
                       JLabel   标签类  
                       JButton   按钮类
                       JTextField  输入框类
                       JPasswordField 密码输入框类
                       JComboBox  下拉框类
                       JCheckBox  复选框类
                       JMenuItem  菜单
             (都是javax.swing包下的类。)

 

3.常用的布局
                    BorderLayout  边框布局
                    FlowLayout   流式布局
                    GridLayout   网格布局

                    绝对布局(空布局)
 
 注意:所有以Layout结尾的类都是布局类。
 

4.界面实现
 实现界面的步骤:
 1.定义类,在类中定义主函数和初始化界面的方法.
 2.在初始化界面的方法中,实例化一个JFrame窗体类的对象.
 3.设置窗体对象的属性值
 4.实例化布局对象并且设置窗体容器的布局方式.
 5.实例化对象容器或者元素组件的对象,让后将对象添加到窗体上.
 6.在主函数中实例化类的对象,然后调用初始化界面的方法
本人认为最最最重要的是:学会使用API文件!

 

5。练习
1.QQ登录界面
2.计算器界面

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPasswordField;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRootPane;
public class Login {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
       Login log=new Login();
       log.initUI();
         
	}
    public void initUI(){
    	JFrame jf=new JFrame();//构造一个窗体对象
    	jf.setTitle("QQ登录界面");//设置标题
    	jf.setLocation(200, 200);
    	jf.setSize(360, 280);//设置窗体大小
    	jf.setDefaultCloseOperation(3);//设置窗体关闭时退出程序
    	jf.setResizable(false);//设置禁止用户调整窗体大小
    	jf.setUndecorated(true);
       //实例化一个背景图标对象
    	ImageIcon backgroundImage=new ImageIcon("Images/36.jpg");
    	//实例化一个标签对象用来显示背景图标
    	JLabel jlaBackground=new JLabel(backgroundImage);
    	//设置JLabel组件的显示位置和大小
    	jlaBackground.setBounds(0,0,backgroundImage.getIconWidth(),backgroundImage.getIconHeight());
    	//将jlaBackground添加到JLayeredPane的底层
    	jf.getLayeredPane().add(jlaBackground,new Integer(Integer.MIN_VALUE));
    	//获取ContentPane对象
    	JPanel contentPane=(JPanel)jf.getContentPane();
    	//设置ContentPane对象为透明
    	contentPane.setOpaque(false);
    	
    	//创建北边的面板对象
    	JPanel northPanel=new JPanel();
    	northPanel.setOpaque(false);//设置面板为透明
    	northPanel.setPreferredSize(new Dimension(0,110));
    	jf.add(northPanel,BorderLayout.NORTH);
    	//创建一个西边的面板对象
    	JPanel westPanel=westPanel();
    	westPanel.setOpaque(false);
    	jf.add(westPanel,BorderLayout.WEST);
    	//创建一个中间的面板对象
    	JPanel centerPanel=centerPanel();
    	centerPanel.setOpaque(false);//设置面板为透明
    	jf.add(centerPanel,BorderLayout.CENTER);
    	//创建一个南边的面板对象
    	JPanel southPanel=southPanel();
    	//southPanel.setOpaque(false);//设置面板为透明
    	jf.add(southPanel,BorderLayout.SOUTH);
    	
    	jf.setVisible(true);//设置窗体显示出来
    	}
    public JPanel westPanel(){
    		// 实例化一个JPanel对象
    		JPanel panel=new JPanel();
    		//实例化一个流式布局对象,指定对齐方式为右对齐
    		FlowLayout fl=new FlowLayout(FlowLayout.RIGHT);
    		panel.setLayout(fl);
    		//实例化一个ImageIcon图标对象
    		ImageIcon image=new ImageIcon("Images/2.jpg");
    		//实例化一个JLable对象
    		JLabel jla=new JLabel(image);
    		//将图标添加到面板上
    		panel.add(jla);
    		// 返回面板对象
    		return panel;
    	
    }
    public JPanel centerPanel(){
    	// 实例化一个JPanel对象
		JPanel panel=new JPanel();
		//实例化一个流式布局对象,指定对齐方式为左对齐
		FlowLayout fl=new FlowLayout(FlowLayout.LEFT);
		panel.setLayout(fl);
		//实例化一个下拉框的对象
		JComboBox jco=new JComboBox();
		jco.addItem("499454814");
		jco.setEditable(true);//设置可编辑
		jco.setPreferredSize(new Dimension(187,25));//设置组件大小
		//将组件添加到面板上
		panel.add(jco);
		//实例化一个标签对象
		JLabel jla1=new JLabel("注册账号");
		panel.add(jla1);
		//实例化一个密码输入框对象
		JPasswordField jpf=new JPasswordField();
		jpf.setPreferredSize(new Dimension(187,25));
		panel.add(jpf);
		//实例化一个标签对象
		JLabel jla2=new JLabel("找回密码");
		panel.add(jla2);
		//实例化复选框对象
		JCheckBox jck1=new JCheckBox("记住密码");
		jck1.setOpaque(false);
		JCheckBox jck2=new JCheckBox("自动登录");
        jck2.setOpaque(false);
		panel.add(jck1);
		panel.add(jck2);
		
		// 返回面板对象
		return panel;
    }
    public JPanel southPanel(){
    	// 实例化一个JPanel对象
		JPanel panel=new JPanel();
		//实例化一个流式布局对象,指定对齐方式为左对齐
		FlowLayout fl=new FlowLayout();
		panel.setLayout(fl);
		//实例化一个按钮的对象
		JButton jb=new JButton("登        录");
		jb.setOpaque(false);
        jb.setPreferredSize(new Dimension(150,35));		
		panel.add(jb);
		// 返回面板对象
		return panel;
    }
}

问题:不会隐匿窗口。 



 

 

 

 

2.计算器界面

import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JMenu;

public class Callog {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Callog log=new Callog();
		//调用初始化界面的方法
	    log.initUI();
}
	//定义一个初始化界面的方法
	public  void initUI(){
		javax.swing.JFrame jf=new javax.swing.JFrame();//构造一个窗体对象
		jf.setTitle("计算器");//设置标题
		jf.setLocation(200,200);//设置窗体显示的位置
		jf.setSize(280,320);//设置窗体的大小
		jf.setResizable(false);//设置禁止用户调整窗体大小
		jf.setDefaultCloseOperation(3);//设置窗体关闭时退出程序
		
		//设置窗体布局为边框布局
		java.awt.BorderLayout bl=new java.awt.BorderLayout();
		jf.setLayout(bl);
		//创建一个菜单栏对象
        JMenuBar menubar=new JMenuBar();
    	jf.setJMenuBar(menubar);
    	menubar.setOpaque(false);
    	JMenu jm1=new JMenu("编辑(E)");
        menubar.add(jm1);
        JMenuItem jmt1=new JMenuItem("复制(C) (Ctrl+C)");
        jm1.add(jmt1);
        JMenuItem jmt2=new JMenuItem("粘贴(V) (Ctrl+V)");
        jm1.add(jmt2);
    	JMenu jm2=new JMenu("查看(V)");
        menubar.add(jm2);
        JMenuItem jmt3=new JMenuItem("标准型 (T)");
        jm2.add(jmt3);
        JMenuItem jmt4=new JMenuItem("科学型(S)");
        jm2.add(jmt4);
        JMenuItem jmt5=new JMenuItem("数字分组(I)");
        jm2.add(jmt5);
        JMenu jm3=new JMenu("帮助(H)");
        JMenuItem jmt6=new JMenuItem("帮助主题(H)");
        jm3.add(jmt6);
        JMenuItem jmt7=new JMenuItem("关于计算器(A)");
        jm3.add(jmt7);
        menubar.add(jm3);
		//实例化一个JPanel的容器对象
		javax.swing.JPanel panelNorth= new javax.swing.JPanel();
		java.awt.FlowLayout fl=new java.awt.FlowLayout();
		panelNorth.setLayout(fl);
		javax.swing.JTextField jtf=new javax.swing.JTextField("0");
		panelNorth.add(jtf);
		jtf.setHorizontalAlignment(4);
		jtf.setPreferredSize(new java.awt.Dimension(270,50));
		//将panelNorth添加到窗体的北边
		jf.add(panelNorth,java.awt.BorderLayout.NORTH);
		//实例化一个JPanel的容器对象
		javax.swing.JPanel panelWest=new javax.swing.JPanel();
		panelWest.setPreferredSize(new java.awt.Dimension(180,120));
		java.awt.FlowLayout fl1=new java.awt.FlowLayout(java.awt.FlowLayout.CENTER);
		panelWest.setLayout(fl1);
		
		//实例化按钮对象,并添加到窗体
		javax.swing.JButton jbuLogin1 = new javax.swing.JButton(" MC");
		panelWest.add(jbuLogin1);
		javax.swing.JButton jbuLogin2= new javax.swing.JButton(" M+");
		panelWest.add(jbuLogin2);
		javax.swing.JButton jbuLogin3= new javax.swing.JButton(" M- ");
		panelWest.add(jbuLogin3);
	    javax.swing.JButton jbuLog3= new javax.swing.JButton("AC  ");
	    panelWest.add(jbuLog3);
	    javax.swing.JButton jbuLog4= new javax.swing.JButton("  +/-");
	    panelWest.add(jbuLog4);
	    javax.swing.JButton jbuLog5= new javax.swing.JButton("  /    ");
	    panelWest.add(jbuLog5);
	    javax.swing.JButton jbuLogin6= new javax.swing.JButton("   7  ");
	    panelWest.add(jbuLogin6);
	    javax.swing.JButton jbuLogin7= new javax.swing.JButton("  8  ");
	    panelWest.add(jbuLogin7);
	    javax.swing.JButton jbuLogin8= new javax.swing.JButton("  9   ");
	    panelWest.add(jbuLogin8);
	    javax.swing.JButton jbuLogin10= new javax.swing.JButton("   4  ");
	    panelWest.add(jbuLogin10);
	    javax.swing.JButton jbuLogin11= new javax.swing.JButton("  5  ");
	    panelWest.add(jbuLogin11);
	    javax.swing.JButton jbuLogin12= new javax.swing.JButton("  6   ");
	    panelWest.add(jbuLogin12);
	    javax.swing.JButton jbuLogin14= new javax.swing.JButton("   1  ");
	    panelWest.add(jbuLogin14);
	    javax.swing.JButton jbuLogin15= new javax.swing.JButton("  2  ");
	    panelWest.add(jbuLogin15);
	    javax.swing.JButton jbuLogin16= new javax.swing.JButton("  3   ");
	    panelWest.add(jbuLogin16);
	    javax.swing.JButton jbuLogin18= new javax.swing.JButton("              0           ");
	    panelWest.add(jbuLogin18);
	    javax.swing.JButton jbuLogin19= new javax.swing.JButton("   .  ");
	    panelWest.add(jbuLogin19);
	    jf.add(panelWest,java.awt.BorderLayout.WEST);//将panelWest添在窗体的西边
	    
	    //实例化一个JPanel的容器对象
	    javax.swing.JPanel panelCenter=new javax.swing.JPanel();
	    java.awt.FlowLayout fl2=new java.awt.FlowLayout(java.awt.FlowLayout.CENTER);
	    panelCenter.setLayout(fl2);
	    panelCenter.setPreferredSize(new java.awt.Dimension(55,160));
	    jf.add(panelCenter,java.awt.BorderLayout.CENTER);//将panelCenter添在窗体的中间
	    String jbu[]={"      MR      ","     sqrt     ","        *        ","         -        ","         +       ","         =       "};		
		for(int i=0;i<jbu.length;i++){
			javax.swing.JButton btn = new javax.swing.JButton(jbu[i]);
			panelCenter.add(btn);   
	    }
		jf.setVisible(true);//让窗体显示出来
	}
}



 

 

问题:为什么它不对称呢?!

 

续:哈哈,O(∩_∩)O~终于知道它为什么不对称了,改进了一下,也许看不出来什么变化,但它对称了大笑



 

 自我感觉它对称了些,科学数据也证明了这点~

  • 大小: 24 KB
  • 大小: 27.5 KB
  • 大小: 24.1 KB
  • 大小: 23.7 KB
  • 大小: 23.6 KB
分享到:
评论

相关推荐

    swing界面美化包

    "swing界面美化包"就是这样一个工具,它可以帮助开发者轻松地改变Java应用的视觉风格。 Swing界面美化的实现主要依赖于两个关键概念:LookAndFeel和UI Delegate。LookAndFeel是一种可以改变所有组件外观和感觉的...

    Java Swing 界面美化包-含源码

    Java Swing 是Java标准库中的一个组件,用于创建图形用户界面(GUI)。Swing 提供了丰富的组件集合,如按钮、文本框、菜单等,用于构建桌面应用程序。然而,Swing 的默认界面风格(LookAndFeel)在视觉上可能相对...

    java swing界面设计

    - "Java图形用户界面设计(Swing常用组件).ppt"和"JavaSwing界面设计(所有控件及示例).ppt"两个文件中可能包含了各种Swing组件的使用示例和实际应用,建议仔细学习和实践。 9. **学习资源** - Java官方文档:提供...

    JavaSwing界面设计(所有控件及示例)

    JavaSwing界面设计(所有控件及示例)

    纯JAVA实现修改本地IP(swing界面版)

    在本文中,我们将深入探讨如何使用Java编程语言创建一个Swing界面应用,该应用能够修改本地计算机的IP地址。这个程序允许用户存储多个预设IP地址,并方便地在它们之间切换,同时也支持删除不需要的IP配置。我们将会...

    Java写的Swing界面系统

    在本Java写的Swing界面系统中,你将找到完整的源代码,可以直接运行并学习Swing的基本用法和高级特性。 1. **Swing组件基础**:Swing 提供了各种组件,如 JButton、JLabel、JTextField、JTextArea、JComboBox、...

    swing界面嵌入ocx或dll影像控件

    swing调用OCX或dll的方法有很多,其中包括:jcob、comfyj、jawin、jni、jna等等很多方式,但是如果要显示dll或ocx的控件在swing界面上,就有点麻烦了,就像ocx在IE中显示的对象一样。最后通过SWT中嵌入OCX,然后把...

    使用Java Swing界面实现数据库基本操作.rar,Java Swing界面实现数据库基本操作

    总的来说,使用Java Swing界面实现数据库基本操作涉及到以下几个关键点: 1. 理解Swing组件和布局管理,构建用户界面。 2. 掌握JDBC,包括连接数据库、创建Statement或PreparedStatement、执行SQL语句和处理结果集。...

    在swing界面中嵌入javaFX运行的视频

    这篇名为“在Swing界面中嵌入JavaFX运行的视频”的博客文章探讨了如何将JavaFX的视频播放能力整合到Swing应用中,以提升用户体验。 首先,我们需要理解Swing和JavaFX之间的交互。虽然Swing是早期的UI库,但JavaFX因...

    JavaSwing 界面设计

    swing界面设计ppt文档,介绍swing各组件的用法,并有简单的实例和最终练习

    基于java swing界面的图书管理系统

    【基于Java Swing界面的图书管理系统】是一个利用Java的Swing库构建的图形用户界面应用程序,专为管理和组织图书信息而设计。Swing是Java提供的一个轻量级组件库,用于创建桌面应用程序,提供了丰富的UI控件和事件...

    java实现银行家算法(Swing界面)

    Java 实现银行家算法(Swing 界面) 银行家算法是操作系统中非常重要的一种资源分配算法,用于避免死锁和饥饿的出现。下面我们将通过 Java 语言来实现银行家算法,并使用 Swing 库来设计一个友好的图形用户界面。 ...

    4个swing界面.rar_java swing_swing_swing 界面_个_界面

    标题中的"4个swing界面"可能指的是四个不同的Swing界面示例,这些示例可能是为了展示Swing如何构建不同类型的窗口或对话框。对于初学者来说,了解并实践这些例子是非常有益的,因为它们可以深入理解Swing组件的用法...

    Java通过swing界面实现简易飞机小游戏.zip

    Java通过swing界面实现简易飞机小游戏.zipJava通过swing界面实现简易飞机小游戏.zip Java通过swing界面实现简易飞机小游戏.zipJava通过swing界面实现简易飞机小游戏.zip Java通过swing界面实现简易飞机小游戏.zip...

    java课程设计界面美化包,swing也可以这么漂亮

    本demo正是一个很好的教学示例,展示了如何集成和使用Substance库来美化Swing界面。 在"main"函数中的注释,作者提供了一个简单的教程,指导如何更换皮肤。通常,这涉及到加载Substance库,创建一个自定义的LookAnd...

    Swing 界面设计小例子

    在本教程中,我们将探讨Swing界面设计的一些基本概念和实践,通过一个简单的小例子来展示如何创建和定制GUI组件。 首先,Swing提供了一系列组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)等,用于...

    java漂亮swing界面

    标题“java漂亮swing界面”可能是指使用Java Swing来设计具有良好视觉吸引力和用户体验的GUI。在Java Swing中,可以通过自定义外观和使用特定的布局管理策略来实现漂亮的界面。 **Swing组件** 1. **JFrame**: 这是...

Global site tag (gtag.js) - Google Analytics