版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验7建立图形用户界面一、实验目的了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。二、实验要求1.理解Java的事件处理机制,掌握为不同组件编写事件处理程序的方法。2.掌握编写独立运行的窗口界面的方法。3.了解JavaSwing组件的使用方法。4.了解对话框的使用方法。三、实验内容(1)建立独立运行的窗口界面并使用匿名类最常使用的包含组件的容器是窗口,在Java中窗口由Frame类生成。创建一个窗口界面程序功能:创建一个具有关闭功能的空白窗口。编写KY7_5_W.java程序文件,源代码如下。importjava.awt.*;importjava.awt.event.*;publicclassKY7_5_W{publicstaticvoidmain(String[]args){newKY7_5_W();}KY7_5_W(){Framef=newFrame("初始窗口");//创建窗口对象f.setSize(350,200);//设置窗口大小f.setVisible(true);//设置窗口是可视的f.addWindowListener(newWindowAdapter(){//为窗口添加窗口事件适配器publicvoidwindowClosing(WindowEvente){//关闭窗口事件的方法System.exit(0);}};}}编译并运行程序在窗口中添加组件程序功能:在窗口中添加组件。编写KY7_6.java程序文件,源代码如下。importjava.awt.*;importjava.awt.event.*;publicclassKY7_6extendsFrameimplementsActionListener{Buttonbtn1,btn2;TextFieldf,tf1,tf2;TextAreaArea;KY7_6(){super("添加组件的窗口");addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});setSize(350,250);//设置窗口大小setLocation(200,200);//设置窗口显示位置setFont(newFont("Arial",Font.PLAIN,12));//设置字体setLayout(newFlowLayout());Area=newTextArea(6,40);tf1=newTextField(10);tf2=newTextField(10);btn1=newButton("显示");btn2=newButton("退出");f=newTextField(20);add(Area);add(newLabel("用户名"));add(tf1);add(newLabel("电话"));add(tf2);add(f);add(btn1);add(btn2);tf1.addActionListener(this);tf2.addActionListener(this);btn1.addActionListener(this);btn2.addActionListener(this);show();}publicstaticvoidmain(Stringargs[]){newKY7_6();}publicvoidactionPerformed(ActionEvente){if(e.getSource()==btn1)f.setText("你按下了“"+e.getActionCommand()+"”按钮");if(e.getSource()==tf1)Area.append("用户名:"+tf1.getText()+"\n");if(e.getSource()==tf2)Area.append("电话:"+tf2.getText()+"\n");if(e.getSource()==btn2){for(inti=0;i<100000000;i++);System.exit(0);}});button1=newJButton(newImageIcon("image/PreviousArrow.gif"));button2=newJButton(newImageIcon("image/go.GIF"));button3=newJButton(newImageIcon("image/NextArrow.gif"));button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);toolBar=newJToolBar();toolBar.add(button1);toolBar.add(button2);toolBar.add(button3);textArea=newJTextArea(6,30);scrollPane=newJScrollPane(textArea);panel=newJPanel();setContentPane(panel);panel.setLayout(newBorderLayout());panel.setPreferredSize(newDimension(300,150));panel.add(toolBar,BorderLayout.NORTH);panel.add(scrollPane,BorderLayout.CENTER);pack();show();}publicvoidactionPerformed(ActionEvente){Strings="";if(e.getSource()==button1)s="左按钮被单击\n";elseif(e.getSource()==button2)s="中按钮被单击\n";elseif(e.getSource()==button3)s="右按钮被单击\n";textArea.append(s);}}编译KY7_9.java。运行KY7_9.class(3)使用自定义对话框与内部类(可选)对话框是GUI中很常见的窗口对象,有着广泛的应用。对话框和普通窗口最大的不同就是对话框是依附在某个窗口上,一旦它所依附的窗口关闭了,对话框也要随着关闭。Java提供了Dialog类用于制作自定义对话框,当需要改变一些数据或需要一个提示窗口时可使用自定义对话框。程序功能:创建一个带有文本区及“对话框”按钮的父窗口,单击“对话框”按钮可打开一个自定义对话框,从中可以定义行和列的数值,关闭对话框其设置的设置会显示在父窗口的文本区中。编写KY7_10.java程序文件,源代码如下。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassKY6_10extendsJFrameimplementsActionListener{introw=10,col=40;JPanelp1=newJPanel(),p2=newJPanel();JTextAreata=newJTextArea("文本区行数:"+row+"列数:"+col,row,col);JScrollPanescrollPane=newJScrollPane(ta);Buttonexit=newButton("关闭");Buttondialog=newButton("对话框");JPanelpanel=newJPanel();KY7_10(){setContentPane(panel);setTitle("带有对话框的父窗口");panel.setPreferredSize(newDimension(500,200));panel.setLayout(newBorderLayout());panel.add("Center",p1);panel.add("South",p2);p1.add(scrollPane);p2.add(exit);p2.add(dialog);exit.addActionListener(this);dialog.addActionListener(this);pack();show();//setVisible(true);}publicstaticvoidmain(Stringargs[]){newKY7_10();}publicvoidactionPerformed(ActionEvente){if(e.getSource()==exit)System.exit(0);else{MyDialogdlg=newMyDialog(this,true);dlg.show();}}classMyDialogextendsDialogimplementsActionListener{Labellabel1=newLabel("请输入行数");Labellabel2=newLabel("请输入列数");TextFieldrows=newTextField(50);TextFieldcolumns=newTextField(50);ButtonOK=newButton("确定");ButtonCancel=newButton("取消");MyDialog(KY7_10parent,booleanmodal){super(parent,modal);setTitle("自定义对话框");setSize(260,140);setResizable(false);setLayout(null);add(label1);add(label2);label1.setBounds(50,30,65,20);label2.setBounds(50,60,65,20);add(rows);add(columns);rows.setText(Integer.toString(ta.getRows()));columns.setText(Integer.toString(ta.getColumns()));rows.setBounds(120,30,90,20);columns.setBounds(120,60,90,20);add(OK);add(Cancel);OK.setBounds(60,100,60,25);Cancel.setBounds(140,100,60,25);OK.addActionListener(this);Cancel.addActionListener(this);}publ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022年陕西省商洛市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2023年云南省红河自治州公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2024年湖北省孝感市公开招聘警务辅助人员辅警笔试自考题1卷含答案
- 2021年山东省菏泽市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2024年宠物医院项目投资申请报告代可行性研究报告
- 2023-2024学年度七年级地理第一学期期末质量检测卷(解析版)
- 2024版教育教学人员聘用合同样本版B版
- 2024淘宝店铺品牌形象设计及电商导购合同3篇
- 2024版家庭装饰装修细节施工合同版B版
- 2024版企业借款协议详细范例版B版
- 医疗机构资产负债表(通用模板)
- 废旧锂离子电池高值资源化回收利用项目环评报告书
- 审计英语词汇大全讲课教案
- JIS G3507-1-2021 冷镦用碳素钢.第1部分:线材
- 初二家长会ppt通用PPT课件
- 小学生家庭作业布置存在的误区及改进策略论文1
- 一元一次含参不等式教学设计83
- 生物医学研究的统计学方法课后习题答案 2014 主编 方积乾
- 牛仔面料成本核算
- 加拿大矿业政策
- 客情关系的建立和维护
评论
0/150
提交评论