`
茶杯里的台风
  • 浏览: 12431 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

图形界面开发

 
阅读更多

20130627   图形界面的开发总结

       今天主要介绍了图形界面的开发。通过这节课,我了解到Java提供的有关图形界面开发的组件以及布局方式。Java的图形界面类包括两种:awt(布局类)及swing(组件类)。

       常用的组件类有容器组件及元素组件。容器组件包括窗体容器(JFrame)和面板容器(JPanel)。元素组件主要包括标签(JLabel)、文本输入框(JFextField)、密码输入框(JPasswordField)、下拉框(JComboBox)、复选框(JCheckBox)、按钮(JButton)。常用的布局类有边框布局(BorderLayout)、流式布局(FlowLayout)、网格布局(GridLayout)等。还有一种绝对布局,当窗体的大小不可以改变时,用绝对布局会更方便一些。

        实现图形界面,最主要的定义一个窗体,设置窗体的布局后在窗体上设计添加所需的内容。

        例如,实现一个QQ登陆界面的步骤大致为:

        1.定义一个类,在类中定义定义主函数和初始化界面的initGUI()方法。
        2.在主函数中实例化类的对象,然后调用initGUI方法。
        3.在initGUI方法中实例化JFrame类的对象,同时设置JFrame类对象的属性值。
        4.给你的容器设置布局方法
        5.实例化容器和元素组件,将其添加到窗体上。
        6.在initGUI方法的最后一行添加窗体可见的方法。

以下为QQ登陆界面的代码:

package QQ;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;

public class QQLogo {
	// 定义入口主函数
	public static void main(String[] args) {
		// 实例化一个JFrame类的对象
		QQLogo qq = new QQLogo();
		// 调用界面初始化方法
		qq.initGUI();
	}

	private JComboBox jpa;

	// 定义界面初始化的方法
	public void initGUI() {
		// 实例化一个JFrame的对象
		JFrame jf = new JFrame();
		// 设置JFrame的属性值
		// 设置窗体的大小属性
		jf.setSize(378,293);
		//设置窗体的标题属性
		jf.setTitle("欢迎登陆腾讯QQ");
		//设置窗体在屏幕上显示的位置属性
		jf.setLocationRelativeTo(null);
		//设置窗体的关闭属性
		jf.setDefaultCloseOperation(3);
		//设置窗体的可调整性
		jf.setResizable(false);
		
		//设置窗体的布局属性
		jf.setLayout(new BorderLayout());
		
		//设置一个背景图片background的对象
		//实例化一个图标对象
		ImageIcon images=new ImageIcon("images/0.jpg");
		//实例化一个标签,并在标签上显示图标
		JLabel jla4=new JLabel(images);
		//设置标签的起始位置和标签的大小
		jla4.setBounds(0,0,378,292);
		//将标签添加到窗体的LayeredPanel面板的最低层(第二层面板)
		jf.getLayeredPane().add(jla4,new Integer(Integer.MIN_VALUE));
		//获取窗体的第一层面板
		JPanel contenPanel=(JPanel)jf.getContentPane();
		//设置第一层面板为透明
		contenPanel.setOpaque(false);
		
	
		//****设置中间的面板(centerPanel)*******
		//实例化一个centerPanel
		JPanel centerPanel=new JPanel();
		//将中间面板设置为透明
		centerPanel.setOpaque(false);
		//设置中间面板的布局为流式布局
		centerPanel.setLayout(new FlowLayout());
		
		//设置组件
		//实例化一个下拉框对象
		JComboBox jco=new  JComboBox();
		//设置大小属性
        jco.setPreferredSize(new Dimension(190,25));
        //设置可编辑性
        jco.setEditable(true);
        //将下拉框对象添加到面板上
        centerPanel.add(jco);
        
        //设置标签
        JLabel jla1=new JLabel("注册账号");
        //将标签添加到面板上
        centerPanel.add(jla1);
        
        //实例化密码输入框对象
        JPasswordField jps=new JPasswordField();
        //设置对象的大小属性
        jps.setPreferredSize(new Dimension(190,25));
        //设置对象的可编辑性,密码输入框默认可编辑
        //jps.setEditable(true);
        //将对象添加到面板上
        centerPanel.add(jps);
        
        //添加标签
        JLabel jla2=new JLabel("找回密码");
        //将标签添加到面板上
        centerPanel.add(jla2);
        
        //设置复选框对象
        JCheckBox jch1=new JCheckBox("记住密码");
        jch1.setOpaque(false);
        centerPanel.add(jch1);
        JCheckBox jch2=new JCheckBox("自动登录");
        jch2.setOpaque(false);
        centerPanel.add(jch2);
        
        //将面板放到窗体的中间位置
        jf.add(centerPanel,BorderLayout.CENTER);
        
        //****设置西边面板westPanel**********
        //实例化一个westPanel对象
       JPanel westPanel=new JPanel();
        //将西边面板设置为透明
     	westPanel.setOpaque(false);
    //实例化一个图标(ImageIcon)对象
       ImageIcon image=new ImageIcon("images/touxiang.png");
       //实例化一个JLabel的对象,并让标签上显示图标
        JLabel jlaImage=new JLabel(image);
       //将jlaImage添加到面板上
        westPanel.add(jlaImage);
        //将面板添加到窗体上
        jf.add(westPanel,BorderLayout.WEST);
        
        //*****设置南边的面板southPanel*****
        //实例化一个面板对象
        JPanel southPanel=new JPanel();
        
        //将南边面板设置为透明
      	southPanel.setOpaque(false);

        //实例化一个JButton对象
        JButton jbu=new JButton("登     陆");
        //将登陆按钮添加到面板上
        southPanel.add(jbu);
        jbu.setActionCommand("登陆");
        //将面板添加到窗体上
        jf.add(southPanel,BorderLayout.SOUTH);
        
        //*****设置北边的面板northPanel*****
        //实例化一个面板对象
        JPanel northPanel=new JPanel();
      //将北边面板设置为透明
      	northPanel.setOpaque(false);

        //设置面板的布局为边框布局
        northPanel.setLayout(new BorderLayout());
        //设置面板的大小
        northPanel.setPreferredSize(new Dimension(489,130));
        //实例化一个标签
        JLabel jla3=new JLabel("欢迎来到屌丝世界!!!");
        jla3.setFont(new Font("华文行楷",Font.BOLD,30));
        //将标签添加到面板上
        northPanel.add(jla3,BorderLayout.CENTER);
        //将面板添加到窗体上
        jf.add(northPanel,BorderLayout.NORTH);
        
       
        //设置窗体的可见性
        jf.setVisible(true);
        
		
		
		
		

	}
}

 

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics