实验五 Java图形用户界面设计.docx

上传人:h**** 文档编号:26932935 上传时间:2022-07-20 格式:DOCX 页数:17 大小:15.93KB
返回 下载 相关 举报
实验五 Java图形用户界面设计.docx_第1页
第1页 / 共17页
实验五 Java图形用户界面设计.docx_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《实验五 Java图形用户界面设计.docx》由会员分享,可在线阅读,更多相关《实验五 Java图形用户界面设计.docx(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验五 Java图形用户界面设计 5 Java 图形用户界面设计 5.1实验目的、内容及性质 掌握Java 的GUI 设计技术,掌握AWT 和Swing 的应用技巧。实验性质:验证、必做 实验学时:2学时 5.2问题及思考 1、最常见的AWT以及Swing控件用法。 2、几个常见布局总结 3、区分容器控件和一般非容器控件 4、Java事件几种关键组成部分以及事件处理流程 5.3实验指导 1、Swing示例 /*需要哪些组件,如何布局?*/ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class

2、 MyFrm extends JFrame/从JFrame继承 /*声明界面需要使用的控件*/ JLabel lbl_name =new JLabel(用户名); JLabel lbl_pwd =new JLabel(密码); JTextField txt_name=new JTextField(); JPasswordField txt_pwd=new JPasswordField(); JButton btn_OK=new JButton(登陆); JButton btn_Cancel=new JButton(取消); /*在构造函数中将控件放置在JFrame上*/ public MyFr

3、m() /*获取当前Frame的内容面板*/ JPanel jp=(JPanel)this.getContentPane(); /*设置内容面板的布局Layout*/ jp.setLayout(new GridLayout(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); public static void main(St

4、ring arg) /*纯Java样式显示窗体*/ JFrame.setDefaultLookAndFeelDecorated(true); /*实例化当前窗体类*/ MyFrm frm=new MyFrm(); frm.setSize(200,200); frm.setVisible(true); 2、常用布局 1)、流布局:FlowLayout 从左到右,自上而下方式在容器中排列,控件的大小不会随容器大小变化. 容器.setLayout(new FlowLayout(FlowLayout.LEFT); 2)、网格布局:GridLayout 按照指定行数与列数,将容器分成大小相等的单元格每个

5、单元格放置一个控件. 不能将控件放在指定单元格 容器.setLayout(new GridLayout(3,4,10,15); 3)、边界布局:BorderLayout 将容器分成东、西、南、北、中五个部分 容器.setLayout(new BorderLayout(); 窗口的内容面板默认布局就是边界布局。 容器.add(控件,BorderLayout.NORTH); 4)、混合布局:使用JPanel,将多个布局组合在一起使用 JPanel jp=(JPanel)this.getContentPane(); for(int i=0;i事件源侦听者接收事件-自动调用相应事件处理函数. 编程模板

6、: class MyFrm extends JFrame implements ActionListener JButton btn=new JButton(OK); . public MyFrm() . btn.addActionListner(this); . public void actionPerformed(ActionEvent e) . if(e.getSource()=btn) Java事件处理示例: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyFrm ext

7、ends JFrame implements ActionListene r /* 界面中需要的组件作为属性声明 */ JTextField txt = new JTextField(10); JLabel lbl = new JLabel(姓名); JButton btn = new JButton(查询); /* 组件在构造函数中放置在窗体JFrame上 */ public MyFrm() /* 获取JFrame的内容面板ContentPane,控件放在该面板上 */ JPanel jp = (JPanel) this.getContentPane(); /* 设置面板布局Layout,如

8、何放? */ jp.setLayout(new FlowLayout(); jp.add(lbl); jp.add(txt); jp.add(btn); /* 为事件源加一个侦听者*/ btn.addActionListener(this); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /* 事件处理方法*/ public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(this, btn点击); public static void main(St

9、ring arg) JFrame.setDefaultLookAndFeelDecorated(true);/ 设置纯Java样式 MyFrm frm = new MyFrm(); frm.setSize(400, 300); frm.setVisible(true); 注意:在做下列题目前仔细阅读第一个示例,彻底弄懂Swing界面设计 5.4实践编程 1、调试运行Swing示例 2、调试运行Java事件处理示例 3、依据题1、2,编写如下界面 当用户点击”Click Me”按钮,显示消息对话框,消息为” Click Me 按钮被点击”。package Ex5_3; import javax.

10、swing.*; import java.awt.*; import java.awt.event.*; public class MyFrm extends JFrame implements ActionListener JButton btn=new JButton(Click Me); public MyFrm() JPanel jp=(JPanel)this.getContentPane(); jp.setLayout(new FlowLayout(); jp.add(btn); btn.addActionListener(this); this.setTitle(Action Ev

11、ent); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(this,Click Me 按钮被点击); package Ex5_3; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test public static void main(String args) MyFrm frm

12、= new MyFrm(); frm.setSize(400, 300); frm.setVisible(true); 4、编写一个程序实现用户登录界面 当用户登录按下确定键,判断用户是否录入了用户名与密码,如果没有按或用户名不为admin 密码不为1234 都需要提示错误。 package Ex5_4; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyFrm extends JFrame implements ActionListener JLabel lbl_name =new

13、 JLabel(用户名); JLabel lbl_pwd =new JLabel(密码); JTextField txt_name=new JTextField(); JPasswordField txt_pwd=new JPasswordField(); JButton btn_OK=new JButton(登陆); JButton btn_Cancel=new JButton(取消); public MyFrm() JPanel jp=(JPanel)this.getContentPane(); jp.setLayout(new GridLayout(3,2,10,5); jp.add(l

14、bl_name);jp.add(txt_name); jp.add(lbl_pwd);jp.add(txt_pwd); jp.add(btn_OK);jp.add(btn_Cancel); this.setTitle(登陆); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn_OK.addActionListener(this); public void actionPerformed(ActionEvent e) String uname=txt_name.getText(); String upwd=txt_pwd.getTe

15、xt(); if(uname.equals()|upwd.equals() JOptionPane.showMessageDialog(this, 用户名或密码未输入!); else if(!uname.equals(admin)|!upwd.equals(1234) JOptionPane.showMessageDialog(this, 用户名或密码输入错误!); else JOptionPane.showMessageDialog(this, 用户名或密码输入正确!); package Ex5_4; import javax.swing.*; import java.awt.*; impo

16、rt java.awt.event.*; public class Test public static void main(String args) JFrame.setDefaultLookAndFeelDecorated(true); MyFrm frm=new MyFrm(); frm.setSize(400,200); frm.setVisible(true); 5、利用合适的布局和Swing控件完成下题 按照界面使用相应控件与合适的布局完成下题,要求按生成随机数按纽产生三个随机整数0到100之间,按计算平均数按纽计算平均值,如图所示,初始界面 参考:int x=(Math.rand

17、om()*41+60); 产生随机数 txt1.setText(x+”);将随机数赋予文本框txt1 package Ex5_5; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyFrm extends JFrame implements ActionListener JLabel lbl =new JLabel(随机数字一); JLabel lb2 =new JLabel(随机数字二); JLabel lb3 =new JLabel(随机数字三); JLabel lb4 =new

18、 JLabel(三数平均值); JTextField txt1=new JTextField(); JTextField txt2=new JTextField(); JTextField txt3=new JTextField(); JTextField txt4=new JTextField(); JButton btn_start=new JButton(生成随机数); JButton btn_average=new JButton(计算平均数); public MyFrm() JPanel jp=(JPanel)this.getContentPane(); jp.setLayout(n

19、ew GridLayout(5,2,10,5); jp.add(lbl);jp.add(txt1); jp.add(lb2);jp.add(txt2); jp.add(lb3);jp.add(txt3); jp.add(lb4);jp.add(txt4); jp.add(btn_start);jp.add(btn_average); this.setTitle(三个随机数字); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn_start.addActionListener(this); btn_average.addAction

20、Listener(this); public void actionPerformed(ActionEvent e) if(e.getSource()=btn_start) int x=(int)(Math.random()*41+60); txt1.setText(x+); int y=(int)(Math.random()*41+60); txt2.setText(y+); int z=(int)(Math.random()*41+60); txt3.setText(z+); if(e.getSource()=btn_average) double x=Double.valueOf(txt

21、1.getText(); double y=Double.valueOf(txt2.getText(); double z=Double.valueOf(txt3.getText(); double t=(x+y+z)/3; txt4.setText(t+); package Ex5_5; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test public static void main(String args) MyFrm frm=new MyFrm(); frm.setSiz

22、e(400,200); frm.setVisible(true); 6编写程序实现如下界面,实现事件如果按下座位i 就在控制台中显示“座位i被选中”例如按下“座位0“,则输出座位0被选中” package Ex5_6; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyFrm extends JFrame implements ActionListener JButton btn0=new JButton(讲台); JButton btn1=new JButton(座位1); JBu

23、tton btn2=new JButton(座位2); JButton btn3=new JButton(座位3); JButton btn4=new JButton(座位4); JButton btn5=new JButton(座位5); JButton btn6=new JButton(座位6); public MyFrm() JPanel jp=(JPanel)this.getContentPane(); JPanel jp1=new JPanel(); jp1.setLayout(new GridLayout(); jp1.add(btn0); jp.add(jp1,BorderLay

24、out.NORTH); JPanel jp2=new JPanel(); jp2.setLayout(new GridLayout(2,3); jp2.add(btn1);jp2.add(btn2);jp2.add(btn3); jp2.add(btn4);jp2.add(btn5);jp2.add(btn6); jp.add(jp2,BorderLayout.CENTER); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn1.addActionListener(this); btn2.addActionListener(thi

25、s); btn3.addActionListener(this); btn4.addActionListener(this); btn5.addActionListener(this); btn6.addActionListener(this); public void actionPerformed(ActionEvent e) if(e.getSource()=btn1) System.out.println(座位1被选中); if(e.getSource()=btn2) System.out.println(座位2被选中); if(e.getSource()=btn3) System.o

26、ut.println(座位3被选中); if(e.getSource()=btn4) System.out.println(座位4被选中); if(e.getSource()=btn5) System.out.println(座位5被选中); if(e.getSource()=btn6) System.out.println(座位6被选中); public static void main(String args) MyFrm frm=new MyFrm(); frm.setSize(1000,500); frm.setVisible(true); 7 完成以下窗体制作 参考:这一题考虑使用组

27、合布局,将上面控件放置在JPanel上,再将JPanel放到内容面板的中间。下面四个按钮先放在某JPanel再放置在内容面板的South部分 package Ex5_7; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class LoginFrm extends JFrame implements ActionListener JLabel lb_name=new JLabel(姓名:); JLabel lb_sex=new JLabel(性别:); JLabel lb_profession=new JLabel(身份:); JLabel lb_unit=new JLabel(单位:); JLabel lb_IDnum=new JLabel(证件号码:); JLabel lb_rDate=new JLabel(注册日期:); JLabel lb_eDate=new JLabel(有效日期:); JTextField txt_name=new JTextField();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁