读书人

第五次学时总结

发布时间: 2013-07-11 15:38:46 作者: rapoo

第五次课时总结

?????????????????????????????????????????????????? 第五次课时总结

?

?

?????? 这节课的内容是登陆界面的开发,java中的图形界面有两种awt和swing。下面先来介绍一下界面开发过程中的经常用到的一些组件。

??????? (1)容器类组件:

???????????????? JFrame:窗体类。

???????????????? JPanel: 面板类

???????????????? JMenuBar:菜单栏

?????????????????JMenu: 菜单项

????????(2)元素组件:

??????????????? JLabel:标签类

??????????????? JButton:按钮类

????????????????JTextField:文本框

??????????????? JPasswordField:密码输入框

????????????????JComboBox:下拉文本框

????????????????JCheckBox:复选框

??????????????? JMenuItem:菜单

?????? 下面在介绍一下常用的布局方式:

??????????? BorderLayout:边框布局

????????????FlowLayout:流式布局

??????????? GirdLayout:表格布局

?????? 边框布局:界面被分为东、西、南、北、中五个部分,其中北和南两个部分宽度是不可变的仅高度可以改变,东和西仅宽度可以改变高度不可以改变。当然如果一个界面采用边框布局的方式,五个部分可以不都出现,其他未出现的部分会被中间部分自动充满。

???????流式布局:组件从左到右依次排列,知道写满一行,写满后自动跳转到下一行。

???????当然开发一个界面的时候可以用到多个布局方式,但要注意的是一个容器只可以存在一种布局方式。在java中,JFrame默认的是边框布局的方式,JPanel默认的是流式布局。

?????????

??????

??????????? 开发一个界面的一般步骤:

??????????? 1.定义类,在类中定义主函数和初始化界面的方法.
????????????2.在初始化界面的方法中,实例化一个JFrame窗体类的对象.
????????????3.设置窗体对象的属性值
?????????? ?4.实例化布局对象并且设置窗体容器的布局方式.
????????????5.实例化对象容器或者元素组件的对象,让后将对象添加到窗体上.
??????????? 6.在主函数中实例化类的对象,然后调用初始化界面的方法

?

?

??????????? 下面介绍一下我在练习中遇到的问题以及解决办法:

???????????? 在做QQ登陆界面的时候,我先采用的布局方式是流式布局,但我发现随着窗体大小的改变组件在界面上的位置会发生明显的变化,这不是我想要的结果,最后我才用了一种不同于以上三种布局方式的布局方式——绝对布局。首先调用setLayout(null);方法设置布局方式为绝对布局,然后调用setBounds();方法来设置组件的起始位置、高度和宽度。例如如下代码:

package four0709;import java.awt.*;public class Cale {/** * @param args *///程序的入口public static void main(String[] args) {// TODO 自动生成的方法存根//实例化一个Cale类的对象Cale c1 = new Cale();//调用初始化界面的方法c1.init();}//定义一个初始化方法public void init(){//实例化一个JFrame类的对象javax.swing.JFrame  jf = new javax.swing.JFrame();//设置对象的属性值jf.setSize(200,200);//设置对象的大小jf.setTitle("计算机");//设置对象的标题jf.setLocation(100,100);//设置对象的起始位置jf.setDefaultCloseOperation(3);//设置关闭窗体是退出程序jf.setResizable(false);//设置禁止改变窗体大小//创建布局方式java.awt.BorderLayout b1 = new java.awt.BorderLayout(5,5);//创建一个文本框javax.swing.JTextField j = new javax.swing.JTextField();//将这个组件放到北面jf.add(j,BorderLayout.NORTH);//设置文本框的高度j.setPreferredSize(new Dimension(0, 50));//设置一个面板javax.swing.JPanel pc = new javax.swing.JPanel();//设置面板的布局方式4行4列的表哥布局方式pc.setLayout(new GridLayout(4,4,5,5));//设置按钮组件javax.swing.JButton [] jbts = new javax.swing.JButton[16];String [] labels = new String[]{"7","8","9","+","4","5","6","-","1","2","3","*","0",".","=","/"};for(int i = 0;i<jbts.length;i++){javax.swing.JButton jbt = new javax.swing.JButton(labels[i]);pc.add(jbt);jf.add(pc,BorderLayout.CENTER);//设置窗体可见jf.setVisible(true);}}}

?

读书人网 >其他相关

热点推荐