一图形界面初步1)创建图形界面一般创建图形界面都是在Frame类基础上,而Frame类仅仅可以实现基本功能,它很难满足我们界面的要求,所以一般我们都会继承这个类.在这个类基础上进行设置.这里我们继承了JFrame它是在Swing中的.窗体设计可以完成以下步骤:①定义一个窗体类,设置这个窗体属性②创建一些控件,设置这些控件的属性.③把控件按你的布局想法放到对应的控件或窗体上.④测试,也可以说是实例化对象并使用.实例化后记得设置它关闭按钮和把它显示出来2)在图形界面上添加组件添加组件的时候,我们都会想到在窗体中怎么放这个组件.这个就涉及到布局的问题.在这里我仅添加了3个组件,其中2个button放panel1中,1个label组件放在panel2中.最后把panel1放到窗体的北边,panel2放到窗体的中间.请看代码:3)为控件添加触发事件为控件添加触发事件,需要在合适类中实现相应的接口.并在实现接口的类中实现该接口的方法.添加组件的触发事件约束.很多时候我们都是实现ActionListener接口,实现了该接口的类.要实现接口定义的方法.(回归到实现接口问题上)如这里为我们之前定义的butok,butquit添加触发的事件.可以在创建button对象的MainFrame类中实现ActionListener接口,实现接口定义的方法actionPerformed().,添加约束4)不同界面间连接一般都是按下按钮后,进行一些操作,如打开一个窗体,把原来窗体隐藏.或关闭当前窗体,或退出整个程序.可以使用以下方法配合实现..new.---创建一个窗体对象setVisible(true)---使该窗体可见.setVisible(false)----使窗体不可见.dispose()----通知系统关闭窗体.System.exit(0)----退出整个程序以下用两个窗体来配合实现这个操作.请看例子----------------------------------------------------------------------------------------------------------------------拓展:布局好我们的界面每个窗体都可以设置它的布局.相对而言网格布局是所有布局管理器之首.灵活使用它,可以帮你实现你想要的布局效果.假设现在有一个窗体,我们想设置这个窗体的布局为网格布局,然后再设置每个控件的位置.那应该怎么做呢?它的实现步骤是这样的:1)建立一个GridBagLayout类型的对象.在这里不需要指定网格的个数.如:在窗体程序中加入GridBagLayoutlayout=newGridBagLayout();语句表示建立一个GridBagLayout类型的对象layout2)把GridBagLayout类型的对象设置为组件的布局管理器如:在窗体程序中加入setLayout(layout);语句表示在该窗体程序的布局器为layout3)窗体中添加的组件,为每个组件建立一个GridBagConstraints的对象,设置好GridBagConstraints的值以便确定组件在网格组中的布局方案如:在窗体程序中添加一个Button组件,JButtonbut=newJButton(“ok”);GridBagConstraintsconstraints=newGridBagConstraints(0,0,1,1,10,10,CENTER,BOTH,newInsets(1,1,1,1),0,0);4)调用添加组件的约束如:add(button,constraints);在这里我们一起来了解GridBagConstraints类的构造函数里面的参数.请在API中查看总结为:1intgridx,gridy指定单元格的起始行和列.它们默认数值为02intgridwidth,gridheigth指定单元格的范围.它们默认数值为13doubleweightx,weighty指定单元格被扩大时的容量,.它们的默认数值为0.4intanchor表示组件在单元格里面的对齐方式.多用于组件小于其显示区域情况。它可567以确定在显示区域中放置组件的位置。默认值为CENTER
intfill指定组件在单元格内的填充方式.多用于组件小于其显示区域情况,多是提示使用何种扩展组件方式把显示区填充..默认值为NONEintipadxipady指定组件内部的填充,它们默认数值为0Insetsinsets指定组件边界周围的”外部”填充,默认为不填充我们对布局管理可以这样分析和实现:①在纸上画出组件布局草图②找出一中网格,小组件可以放在一个单元格子里面.大组件可以占用多个单元格③使用0,1,2…标识网格的行和列.然后读取组件放位置gridx,gridy,gridwidth,gridheigth的数值.④对于每个组件是否需要水平或垂直填充单元格,如不需要,希望怎么排序.这些问题一般都是设置它们的fill和anchor参数鉴于GridBagConstraints类的构造函数要设置很多参数.而有些参数不是很必要设置.所以这里定义了一个GBC类.通过GBC类来设置参数的数值.在这个类中包含很多方法.每个方法的作用在里面已经有清楚说明.
因篇幅问题不能全部显示,请点此查看更多更全内容