如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
实验八Java图形用户界面设计(I)§8.1实验目的、内容及性质掌握Java的GUI设计技术,掌握AWT和Swing的应用技巧。实验性质:验证、必做实验学时:2学时§8.2问题及思考最常见的AWT以及Swing控件用法。几个常见布局总结区分容器控件和一般非容器控件§8.3实验指导Swing示例/*需要哪些组件,如何布局?*/importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassMyFrmextendsJFrame{//从JFrame继承/*声明界面需要使用的控件*/JLabellbl_name=newJLabel("用户名");JLabellbl_pwd=newJLabel("密码");JTextFieldtxt_name=newJTextField();JPasswordFieldtxt_pwd=newJPasswordField();JButtonbtn_OK=newJButton("登陆");JButtonbtn_Cancel=newJButton("取消");/*在构造函数中将控件放置在JFrame上*/publicMyFrm(){/*获取当前Frame的内容面板*/JPaneljp=(JPanel)this.getContentPane();/*设置内容面板的布局Layout*/jp.setLayout(newGridLayout(3,2));jp.add(lbl_name);jp.add(txt_name);jp.add(lbl_pwd);jp.add(txt_pwd);jp.add(btn_OK);jp.add(btn_Cancel);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicstaticvoidmain(Stringarg[]){/*纯Java样式显示窗体*/JFrame.setDefaultLookAndFeelDecorated(true);/*实例化当前窗体类*/MyFrmfrm=newMyFrm();frm.setSize(200,200);frm.setVisible(true);}}2、常用布局1)、流布局:FlowLayout从左到右,自上而下方式在容器中排列,控件的大小不会随容器大小变化.容器.setLayout(newFlowLayout(FlowLayout.LEFT));2)、网格布局:GridLayout按照指定行数与列数,将容器分成大小相等的单元格每个单元格放置一个控件.不能将控件放在指定单元格容器.setLayout(newGridLayout(3,4,10,15));3)、边界布局:BorderLayout将容器分成东、西、南、北、中五个部分容器.setLayout(newBorderLayout());窗口的内容面板默认布局就是边界布局。容器.add(控件,BorderLayout.NORTH);4)、混合布局:使用JPanel,将多个布局组合在一起使用JPaneljp=(JPanel)this.getContentPane();for(inti=0;i<btn.length;i++)btn[i]=newJButton("btn"+i);JPaneljp1=newJPanel();//默认布局为FlowLayoutjp1.setLayout(newGridLayout(2,2));for(inti=0;i<4;i++)jp1.add(btn[i]);JPaneljp2=newJPanel();//默认布局为FlowLayoutfor(inti=0;i<4;i++)jp2.add(btn[i+4]);5)、绝对布局null:以坐标定位容器.setLayout(null);每个控件在放置在容器之前,必须设置其边界setBounds(x,y,width,height);btn.setBounds(10,100,30,60);3、Swing示例Grid布局importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassGridLayoutDemoextendsJFrame{privateJButtonbuttons[];privateStringnames[]={"one","two","three