第七章 Java图形用户界面练习汇编
java基础测试题
42.为了区分类中重载的同名的不同方法,要求( )。
A.采用不同的形式参数列表
B.使用不同的参数名
C.修改访问权限
D.返回值的数据类型不同
43.阅读下列代码:
public class Test2005{
public static void main(String args[]){
B.pubic float Method(float c,float d){}
C.public int Method (int a,int b){}
D.pivate float Method (int a,int b,int c){}
5.在编写异常处理的java程序中,每个catch语句块都应该与( )语句块对应,使得用该语句块来启动java的异常处理机制。
String s1=new String("hello");
String s2=new String("hello");
System.out.print(s1==s2);
System.out.print(",");
System.out.println(s1.equals(s2));
}
A.true,falseБайду номын сангаасB.true,true
19.下列属于合法Java标识符的是( )。
A._catB.5books
C.+static D.-3.14159
20.在Java中,表示换行符的转义字符的是( )。
A.\nB.\f
C.'n' D.\dd
21.下列代码的执行结果是( )。
实验五 Java的图形用户界面
实验五Java的图形用户界面
一、实验目的与要求
1.掌握AWT包中常用组件的使用方法。
2.熟悉布局管理器的适用场合,采用布局管理器进行界面的布局。
二、实验内容
1.程序改错
下列程序都有三个错误,按题中的要求,纠正错误并调试程序。
(1)问题描述:下面程序执行时会发生错误,请修改并调试程序。
程序的功能是在屏幕上输出如图5-9所示的图案,图案中每个方格大小是20*20像素。
2、P258实验五程序改错第一题。
3、编程题:设计一个Applet程序sy5_2.java,界面如图5-13所示,其中有两个按钮,当输入完姓名和密码内容后,按“确认”按钮出现图5-14所示界面,当按下“重新输入”按钮,又回到图5-13所示界面。
提示:用两个面板组件,第一个面板放3个标签和两个文本域,第二个面板放两个按钮。
图5-13
图5-14。
JAVA程序设计课后习题及答案7
第7章1.Swing是一个用于开发Java应用程序界面的工具包,它以抽象窗口工具包(abstract window toolkit,AWT)为基础,使跨平台应用程序可以使用任何可插拔的外观风格。
只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。
也可以这样说,Swing是Java平台的UI(user interface),充当了处理用户与计算机之间全部交互的角色。
相对于AWT来说,Swing的主要优势就在于MVC体系结构的普遍使用。
因为为了简化组件的设计工作,在Swing组件中,视图和控件两部分被合为一体。
每个组件都有一个相关的分离模型和它使用的界面(包括视图和控件)。
2.Swing组件从功能上可以按下面的类型来划分。
(1)顶层容器:如JFrame、JApplet、JDialog、JWindow。
(2)中间容器:如JPanel、JScrollPane、JSplitPane、JToolBar。
(3)特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame、JLayeredPane、JRootPane。
(4)基本控件:实现人机交互的组件,如JButton、JComboBox、JList、JMenu、JSlider、JTextField。
(5)不可编辑信息的显示:向用户显示不可编辑信息的组件,如JLabel、JProgressBar、ToolTip。
(6)可编辑信息的显示:向用户显示可被编辑的格式化信息的组件,如JColorChooser、JFileChooser、JTable、JTextArea。
3.(1)面板(JPanel)。
面板是一个轻量级容器组件,用于容纳界面元素,以便在布局管理器的设置下容纳更多的组件,实现容器的嵌套。
JPanel、JScrollPane、JSplitPane和JInternalFrame都属于常用的中间容器,都是轻量级组件。
JPanel的默认布局管理器是FlowLayout。
GUI练习题
图形与用户界面设计一.选择题1.Window是宣示屏上独立的本机窗口,它独立于其它容器,Window 的两种形式是()A、Frame和Dialog??????B、Panel和FrameC、Container和ComponentD、LayoutManager和Container2.框架(Frame)的缺省布局管理器就是()A、流程布局(Flow Layout)B、卡布局(Card Layout)C、边框布局(Border Layout)D、网格布局(Grid Layout)3.java.awt包提供了基本的java程序的GUI设计工具,包含控件、容器和()A、布局管理器B、数据传送器C、图形和图像工具D、用户界面构件4.所有Swing构件都实现了()接口A、ActionListener ???B、SerializableC、AccessibleD、MouseListener5.事件处理机制能够让图形界面响应用户的操作,主要包括()A、事件B、事件处理C、事件源D、以上都是6.Swing采用的设计规范是????()A、视图----模式----控制B、模式-----视图---控制C、控制-----模式----视图D、控制----视图-----模式7.抽象窗口工具包( )是java提供的建立图形用户界面GUI的开发包.A、AWTB、SwingC、Java.ioD、ng8.关于使用Swing的基本规则,下列说法正确的是( )A、Swing构件可直接添加到顶级容器中B、要尽量使用非Swing的重要级构件C、Swing的JButton不能直接放到Frame上D、以上说法都对9.下列不属于java.event包中定义的事件适配器的是( )A、构件适配器B、焦点适配器C、键盘适配器D、标签适配器10.( )布局管理器使容器中各个构件呈网格布局,平均占据容器空间。
A、FlowLayoutB、BorderLayoutC、GridLayoutD、CardLayout11.容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变( )A、CardLayoutB、FlowLayoutC、BorderLayoutD、GridLayout12.paint()方法使用哪种类型的参数A、GraphicsB、Graphics2 DC、StringD、 Color13.监听事件和处理事件( )?????A、都由Listener完成B、都由相应事件Listener处注册过的组件完成C、由Listener和组件分别完成D、由Listener和窗口分别完成14.下列哪个属于容器的组件( )A、JFrameB、JButtonC、JPnelD、 Japplet15.下列不属于容器的是( )A、WindowB、TextBoxC、PanelD、ScrollPane16.下面哪个语句是正确的( )A、Object o=new Button(″A″);B、Button b=new Object(″B″);C、Panel p=new Frame();D、Frame f=new Panel();二.填空题1、在需要自定义Swing构件的时候,首先要确定使用那种构件类作为所定制构件的______,一般继承Jpanel类或更具体的Swing类.2、Swing的事件处理机制包括_____、事件和事件处理者。
Java图形用户界面编程练习
实验八Java图形用户界面编程练习实验目的1、掌握 Java 的 GUI 设计技术2、掌握 AWT 和 Swing 的应用技巧实验要求1、编写一个程序学习使用处理ActiongEvent事件2、编写一个程序学习使用布局类实验内容1.猜数字游戏实验目的:练习图形用户界面编程,学习处理ActionEvent事件。
实用要求:要求程序中要有2个按钮buttonGetNumber和buttonNumber,用户单击buttonGetNumber 按钮可以得到一个随机数,然后在文本框中输入猜测数字,再单击buttonNumber按钮,程序根据用户的猜测给出提示信息。
运行效果示例:程序模板:按模板要求,将【代码】替换为Java程序代码。
GuessExample.javaimport java.awt.*;import java.awt.event.*;import java.applet.*;public class GuessExample extends Applet implements ActionListener {int number;TextField inputNumber;Label feedBack;Button buttonGetNumber,buttonEnter;public void init(){buttonGetNumber=new Button("得到一个随机数");feedBack=new Label ("无反馈信息",Label.CENTER);feedBack.setBackground(Color.green);inputNumber=new TextField("0",5);buttonEnter=new Button("确定");【代码1】//按钮buttonEnter增加ActionEvent事件监视器,监视器为当前Java Applet。
(3)java练习(GUI程序设计)
一、单项选择题(总分70)1. (分值:1.4 分)以下不属于文字字型要素的是A: 颜色B: 字体C: 风格D: 字号2. (分值:1.4 分)Java 代码g.drawLine(100,100,100,100)的功能是A: 画一个圆B: 画一条线段C: 画一个点D: 代码是错误的3. (分值:1.4 分)能处理鼠标拖动和移动两种事件的接口是A: ActionListenerB: ItemListenerC: MouseListenerD: MouseMotionListener4. (分值:1.4 分)Java 语言的图像处理功能所在的类是A: PictureB: ImageC: pictureD: image5. (分值:1.4 分)当启动Applet 程序时,首先调用的方法是A: stop()B: init()C: start()D: destroy()6. (分值:1.4 分)在Java 程序中定义一个类,类中有一个没有访问权限修饰的方法,则此方法A: 类外的任何方法都能访问它B: 类外的任何方法都不能访问它C: 类的子类和同包类能访问它D: 只有类和同包类才能访问它7. (分值:1.4 分)在Java 中,有关菜单的叙述错误的是A: 下拉式菜单通过出现在菜单条上的名字来可视化表示B: 菜单条通常出现在JFrame 的顶部C: 菜单中的菜单项不能再是一个菜单D: 每个菜单可以有许多菜单项8. (分值:1.4 分)在Java Applet 程序中,如果对发生的事件做出响应和处理的时候,应该使用的语句是()A: import java.awt.*;B: import java.applet.*;C: import java.awt.event.*;D: import java.io.*;9. (分值:1.4 分)在Java 中,线程的调度策略采用A: 分时式B: 抢占式C: 非分时式D: 非抢占式10. (分值:1.4 分)包含当事件发生时从源传递给监视器的特定事件信息的对象是()A: 事件对象B: 源对象C: 监视器对象D: 接口11. (分值:1.4 分)在Java 中,获取选择框是否被选中的方法是()A: getSelect()B: getSelected()C: isSelect()D: isSelected()12. (分值:1.4 分)要为程序中的按钮button 设置一个热键alt+A,可以采用的代码是()A: button.setMnemonic( )B: button.setMnemonic("alt+A")C: button.setToolTipText( A )D: button.setToolTipText("alt+A")13. (分值:1.4 分)在Java 中,设置字型应使用Graphics 的()方法。
第6章Java语言的图形用户界面开发技术作业习题与答案.docx
第6章Java语言的图形用户界面开发技术作业习题与答案一、简答题略二、填空题1.版面管理器2.图形用户界面3.标签4・ mousoRcleased5.CheckboxGroup6.适配器类7.事件类&事件机制事件源三、选择题第1至10题:B D C C A四、编程题1.import java.awt. *;public class ChaSixProgl extends Frame}Choice ch:Checkbox bg,fg;Button btnOK.btnCancel;Panel p,pl,p2;public ChaSixProgl(){super(”颜色选择窗口");p=new Panel();p.selLayout(new GridLayout(2,1)); pl=new Panel();p2=new Panel();pl.setLayout(new FlowLayout());p2.setLayout(new FlowLayout()); ch=new Choice();ch.add(”红色“);ch.add(”黄色“);ch.add(”黑色“);ch.add(”紫色“);ch.add(” 绿色“);bg=new Checkbox("背景”);fg=new Checkbox(n前景”);pl.add(bg);pl.add(fg);btnOK=new Button(”确定“);btnCancel=new Button("取消”);p2.add(btnOK);p2.add(btnCancel);p.add(pl);p.add(p2);add(ch,BorderLayoutWO/?77/);add(p,BorderLayout.CEA^TE/?);setSize(400,300);}public static void main(String[J args){ChaSixProgl ChSP= new ChaSixProgl();ChSP.setVisible(true);ChSP.addWindowListener(new MyWindowListenerl()); } }2.import java.awt.*;import java.awt.event.*;public class ChaSixProg2 extends Frame implements ActionListener{ TextField textField 1 ,textField2,textField3;Button button 1 =new Button(n计算”);Panel panell,panel2;public ChaSixProg2(){super(”计算商品总价”);textField l=new TextField(20);textField2=new TextField(20);textField3=new TextField(20);panel 1 =new Panel();panel2=new Panel();panel 1 .setLayout(new GridLayout(3,2));panel2.setLayout(new FlowLayoutO);panell.add(new Label("商品单价:"));panel 1 .add(textField 1);panell.add(new Label(,r商品数量:"));panel 1. add(textField2);panel 1 .add(new Label("商品总额:")); panel 1 .add(textField3);panel2.add(button 1); add(panel 1 ,BorderLayout.CENTER);add(panel2,BorderLayout.SOUTH);button 1 .addActionListener(this); setSize(300,200);setVisible(true);}public static void main(String[] args){ChaSixProg2 Chapl = new ChaSixProg2();Chap 1 .setVisible(true);Chap 1 .addWindowListener(new MyWindowListener 1 ()); }public void actionPerformed(ActionEvent e){int nl,n2,sum;n 1 =Integer.parseInt(textField LgetTextO);n2=Integer.parseInt(textField2.getText());sum=nl*n2;textField3.setText(M"+sum);}}3.import java.awt. *;import java.awt.event.*;public class ChaSixProg3 extends Frame{TextField textField 1 ,textField2;Button button 1;public ChaSixProg3(){ super(”温度转换窗口“);textField l=new TextField(30);textField2=new TextField(30); button l=new Button(M转换”);setLayout(newFlowLayoutO); add(new Label(H华氏温度: add(textFieldl);add(new Label(M摄氏温度:”));add(textField2);textField2.setEditable(false); add(buttonl);setSize(400,300);pack();button! .addActionListener(new ActionListener(){ public voidactionPerformed(ActionEvent e){ button 1 _actionPerformed(e);}});addWindowListener(new WindowAdapter() { public voidwindowClosing(WindowEvent e){ System.exit(O);)));}public static void main(String[] args){ChaSixProg3 Chasix = new ChaSixProg3();Chasix.setVisible(true);Chasix.addWindowListener(new MyWindowListener 1 ()); }private void button 1 _actionPerformed(ActionEvent e){double d=Double.parseDouble(textFieldl.getText()); double h=5.0/9.0*(d-32);textField2.setText(K,,+h);}} import java.awt. *;import java.awt.event.*;import java.applet.*;public class TestCardLayout {Button first = new Button("第一张卡片"),second = new Button("第二张卡片n),third = new Button(”第三张卡片”);Frame TestFrame = new Frame("布局管理器一CardLayout'1);Panel cards = new Panel();Panel p = new Panel();CardLayout cl = new CardLayout();public static void main(String args[]){TestCardLayout TestCards = new TestCardLayout();TestCards.test();public void test(){TestFrame.setLayout(new BorderLayoutO);p.setLayout(new FlowLayoutO);p.add(first);p.add(second);p.add(third);TestFrame.add(n North M, p);cards.setLayout(cl);cards.add(n card 1 *',new Panel().add(new Button(”第一张卡片")));cards.add(n card2",new Panel().add(new Button(”第二张卡片”)));cards.add(n card3*',new Panel().add(new Button(”第三张卡片”)));TestFrame.add(M Center f\ cards);TestFrame.setSize(250,200);TestFrame.setVisible(true);TestFrame.addWindowListener(new MyWindowListenerlO);first.addActionListener(new ActionListenerOfButton ());second.addActionListener(new ActionListenerOfButton ());third.addActionListener(new ActionListenerOfButton ());}class ActionListenerOfButton implements ActionListener{public void actionPerformed(ActionEvent e){Object source=e.getSource();if ( source==first)cl.first(cards);else if ( source==second ){cl.first(cards);cl.next(cards);}else if ( source==third )st(cards);。
编程选择题40道:JavaFX:图形用户界面设计.Tex
1.在JavaFX中,用于创建一个窗口的类是?o A. Sceneo B. Stageo C. Groupo D. BorderPane答案: B解析: Stage类在JavaFX中用于创建主要的窗口。
它是所有JavaFX应用程序的起点。
2.JavaFX中的Scene对象需要什么参数来初始化?o A. 一个Node和背景颜色o B. 一个Stage和宽度o C. 宽度、高度和一个Nodeo D. 宽度、高度和背景音乐答案: C解析: Scene在JavaFX中通过指定宽度、高度和一个作为其根的Node来初始化。
3.下列哪个JavaFX类用于实现一个按钮?o A. Labelo B. TextFieldo C. Buttono D. CheckBox答案: C解析: Button类用于创建用户可以点击的按钮。
4.JavaFX中使用哪种布局管理器可以将所有组件放入一个网格中,每个组件占据一个单元格?o A. BorderPaneo B. GridPaneo C. VBoxo D. HBox答案: B解析: GridPane布局管理器用于创建网格布局,其中每个组件可以定位到特定的行和列。
5.下列哪个方法用于在JavaFX的Pane中添加一个Node?o A. addNode(Node node)o B. setNode(Node node)o C. getChildren().add(Node node)o D. add(Node node)答案: C解析: 使用Pane的getChildren().add(Node node)方法将Node添加到Pane 中。
6.JavaFX中,用于处理用户输入的事件处理模型基于?o A. 观察者模式o B. 单例模式o C. 工厂模式o D. 适配器模式答案: A解析: JavaFX的事件处理模型基于观察者模式,允许对象注册并接收事件通知。
7.当一个Button被点击时,哪个事件对象被触发?o A. ActionEvento B. MouseEvento C. KeyEvento D. DragEvent答案: A解析: 当按钮被点击时,触发的是ActionEvent。
Java面向对象程序设计案例教程课件:图形用户界面开发与事件处理
《Java面向对象程序设计案例教程》
7.2 Swing基础
• Swing组件是Java语言提供的第二代GUI设计工 具包,它以AWT为基础,在AWT内容的基础上 新增或改进了一些GUI组件,使得GUI程序功能 更强大,设计更容易、更方便。
• Swing与AWT有以下不同。
• (1) Swing是完全用Java语言编写的,所以称 Swing组件是轻量级组件,没有本地代码,不依 赖操作系统的支持,比AWT构件具有更强的实 用性。Swing在不同的平台表现一致,并且有能 力提供本地窗口系统不支持的其他特性。
《Java面向对象程序设计案例教程》 • Swing的类层次结构如图所示:
《Java面向对象程序设计案例教程》
• 3. 简单的范例 • 一个简单的Swing GUI应用程序。该程序生成一个窗
口, • 窗口中有一个标签,用于显示输出。 • (1) 程序代码: • 1. import java.awt.* ; • 2. import javax.swing.* ; • 3. public class SwingDemo • 4. { • 5. public static void main(String args[]) • 6. { • 7. JFrame fm = new JFrame("第一个Windows程序") ; • 8. JLabel label = new JLabel("这是第一个GUI程序") ;
• 教材例题7-12 利用组合框显示、选取地名。
• 教材例题8.2 ,例题8.3用不同方法生成JFrame窗口
《Java面向对象程序设计案例教程》
• 7.3.2 面板容器JPanel
• 面板JPanel也是Java中常用到的容器之一,面板是一种透明 的容器,既没有标题,也没有边框,就像一块透明的玻璃。 与JFrame不同,它不能作为最外层的容器单独存在,它首 先必须作为一个构件放置到其他容器中,然后再把它作为容 器,把其他构件放到其中。
计算机二级(JAVA)编写用户界面程序章节练习试卷2(题后含答案及解析)
计算机二级(JA V A)编写用户界面程序章节练习试卷2(题后含答案及解析)全部题型 2. 填空题填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡上。
注意:以命令关键字填空的必须拼写完整。
1.FlowLayout是______和______的默认布局管理器。
正确答案:Panel Applet 涉及知识点:编写用户界面程序2.BorderLayout是______、______和Frame的默认布局管理器。
正确答案:Window Dialog 涉及知识点:编写用户界面程序3.抽象工具包______是用来开发Java图形用户界面的工具包。
正确答案:AWT 涉及知识点:编写用户界面程序4.AWT提供的支持GUI涉及的功能包括:______、事件处理模型、______和数据传送类。
正确答案:用户界面构件图形和图像工具涉及知识点:编写用户界面程序5.若用户需要自己设置构件在容器中的大小和位置,则需要取消容器的______。
正确答案:布局管理器涉及知识点:编写用户界面程序6.采用GridLayout布局管理器的容器,其中的各构件呈______布局。
正确答案:网格状涉及知识点:编写用户界面程序7.授权模型实现了把______和______分开的机制。
正确答案:事件源监听器涉及知识点:编写用户界面程序8.______是一种简单的实现监听器的方法,重写有用的方法,无关的方法可以不用实现。
正确答案:适配器(Adapter) 涉及知识点:编写用户界面程序9.JButton构件在功能上属于______,而JPanel构件属于______。
正确答案:基本构件中间容器涉及知识点:编写用户界面程序10.java.awt.Container中的容器包括3类:______、Panel和______。
正确答案:Window ScrollPane 涉及知识点:编写用户界面程序11.与KeyEvent相对应的接口是______,与WindowEvent相对应的接口是______。
java培训笔记(详细)版含作业练习-图形界面详解
四. 创建GUI 步骤三:在容器中加入组件
五. 创建GUI 步骤四:创建事件处理器
六. FlowLayout流式布局管理器
最简单的布局管理器,按照组件的添加次序将它们从左到右地放置在容器中。当到达容器边界时,组件将放置在下一行中。
FlowLayout允许以左对齐、居中对齐(默认方式)或右对齐的方式排列组件。特性:
. 不限制它所管理的组件的大小, 而是允许它们有自己的最佳大小。
. 当容器被缩放时,组件的位置可能会变化,但组件的大小不改变。
FlowLayout的构造方法如下:
java.awt包中提供了一个抽象类Component,它是所有除了菜单类组件之外的AWT组件的父类。Container类表示容器,继承
了Component类。容器用来存放别的组件, 有两种类型的容器:Window和Panel。
1. Window和它的子类Frame
Insets getInsets() :返回容器的边框尺寸的大小
Validate():使容器内修改过的组件生效
三. 创建GUI 步骤二:布局管理器
组实例,通过它来自动进行组件的
南北区域的组件保持最佳高度,宽度被水平拉伸至和所在区域一样宽;
位于中区域的组件的宽度和高度都被拉伸至和所在区域一样大小。
. 垂直拉伸,东、西和中区域也拉伸;
水平拉伸,南、北和中区域也拉伸;
. 中区域没有组件,也会分配空间显示容器的背景颜色;
f.setBackground(Color.BLUE);
f.setVisible(true);
}
}
Index:组件存放的位置
constraints:通常是布局管理器的对象
Component getComponent()
计算机二级(JAVA)编写用户界面程序章节练习试卷1(题后含答案及解析)
计算机二级(JA V A)编写用户界面程序章节练习试卷1(题后含答案及解析)题型有:1. 选择题选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1.使用______位置参数,能够使一个部件位于容器的右边。
A.BorderLayout.RIGHTB.BorderLayout.WESTC.BonierLayout.EASTD.BorderLayout.NORTH正确答案:C 涉及知识点:编写用户界面程序2.边框布局管理器将一个“容器”分成了______个位置。
A.3个B.9个C.4个D.5个正确答案:D 涉及知识点:编写用户界面程序3.______不属于布局管理器。
A.边框布局B.组合布局C.网格布局D.流布局正确答案:B 涉及知识点:编写用户界面程序4.所有Swing组件都实现了______接口,提供对可存取性的支持,使得辅助功能如屏幕阅读器能够十分方便地从Swing组件中得到信息。
A.MVCB.B2BC.AccessibleD.B2C正确答案:C 涉及知识点:编写用户界面程序5.将一个容器panell放在容器frame1中的方法是______。
A.framel.insert(panell)B.framel.add(panell)C.framel.insertJPanel(panell)D.framel.addJPanel(nanell)正确答案:B 涉及知识点:编写用户界面程序6.事件监视器包含在______包中。
A.java.utilB.java.awt.happenC.java.awt.eventD.java.awt.look正确答案:C 涉及知识点:编写用户界面程序7.Swing是由100%纯Java实现的,Swing组件是用Java实现的______组件,没有本地代码,不依赖操作系统的支持,这是它与AWT组件的最大区别。
Java程序设计GUI 图形用户界面PPT 课件,Java学习和备课必备资料
7
9.1 Swing 简介
9.1.1 窗体组件 JFrame 9.1.2 对话框组件 JDialog 9.1.3 对话框组件 JOptionPane 9.1.4 中间容器 JPanel 与 JscrollPane 9.1.5 标签组件 JLabel 9.1.6 文本组件 JTextField 与JTextArea
5
✓Swing包在图形界面设计上比AWT更丰富,更美观。Swing 拥有4倍于AWT的用户界面组件。 ✓是AWT包基础上的扩展,在很多情况下在AWT包的部件前 加上字母J即为Swing组件的名称,如:JFrame、JApplet、 JButton等。 ✓Swing组件都是AWT的Container类的直接子类或间接子类 。
17
9.1.3 对话框组件 JOptionPane
使用上面介绍的 JDialog 可以制作消息提示对话框、确定取消对话框等常用的对话框,但相 对来说要花费一些心思才能做出来,而 JOptionPane 组件直接提供了创建上述几种常用的对 话框的方法,大大方便了编程。 1.showMessageDialog()的静态方法弹出消息对话框,显示一条消息并等待用户确定。常用 的重载方法如下。
4、设置窗体的位置。setLocationRelativeTo(Component c):设置 窗体的相对位置。如果参数为 null,则窗体在屏幕中居中对齐。
5、如果希望在关闭窗体后程序可以随之停止,需要调用方法 setDefaultClose Operation()并传入参数 JFrame.EXIT_ON_CLOSE, 这句代码设置了关闭窗体后会停止程序的运行。 此外还有其他 3 个参数,简述如下。
口");。 2)带参的构造方法:用一个字符串作为参数,此字符串将成为窗体的标题。
实验七 图形用户界面设计
《Java语言程序设计》实验报告private JButton button_1,button_2,button_add,button_clear;public Simcal(){super("Calculator");this.setBounds(300, 240, 320, 90);this.setResizable(false);this.setBackground(java.awt.Color.lightGray);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));text = new JTextField("",27);text.setHorizontalAlignment(JTextField.RIGHT);text.setEditable(false);caretUpdate(null);this.getContentPane().add(text);text.addCaretListener(this);//JPanel panel = new JPanel(new GridLayout(1,4));//this.getContentPane().add(panel);button_1 = new JButton("1");button_1.addActionListener(this);//panel.add(button_1);this.getContentPane().add(button_1);button_add = new JButton("+");button_add.addActionListener(this);//panel.add(button_add);this.getContentPane().add(button_add);button_2 = new JButton("2");button_2.addActionListener(this);//panel.add(button_2);this.getContentPane().add(button_2);button_clear = new JButton("C");button_clear.addActionListener(this);//panel.add(button_clear);this.getContentPane().add(button_clear);this.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==button_1){text.setText(text.getText()+"1");}if(e.getSource()==button_add){text.setText(text.getText()+"+");}if(e.getSource()==button_2){text.setText(text.getText()+"2");}if(e.getSource()==button_clear){text.setText("");}}public void caretUpdate(CaretEvent e){}public static void main(String arg[]){new Simcal();}}运行结果:(2)计算器如果时间允许,实现计算器的加、减、乘、除等基本运算,参考如下图形界面。
Java第四单元练习题-图形用户界面
Java第四单元练习题-图形用户界面4图形用户界面4.1单项选择题1. 如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是()A、(b);B、(b,"NORth");C、(b,"South");D、(p,"North");2.JPanel的默认布局管理器是()。
A.FlowLayout B.CardLayout C.BorderLayout D.GridLayout3.容器类的父类是()。
A.B.C.D.哪一个布局管理器使用的是组件的最佳尺寸()A.FlowLayout B.BorderLayout C.GridLayout D.CardLayout 5.关于AWT和Swing说法正确的是()。
A.Swing是AWT的子类B.AWT在不同操作系统中显示相同的风格C.AWT不支持事件模型D.Swing在不同的操作系统中显示相同的风格6.关于使用Swing的基本规则,下列说法正确的是()。
A.Swing组件可直接添加到顶级容器中B.要尽量使用非Swing 的重要级组件C.Swing的JButton不能直接放到JFrame上D.以上说法都对7.在Java编程中,Swing包中的组件处理事件时,下面()是正确的。
A.Swing包中的组件也是采用事件的委托处理模型来处理事件的B.Swing包中的组件产生的事件类型,也都带有一个J字母,如JMouseEventC.Swing包中的组件也可以采用事件的传递处理机制D.Swing包中的组件所对应的事件适配器也是带有J字母的,如JMouseAdapter8.能将容器划分为"East"、"South"、"West"、"North"、"Center"五个区域的布局管理器是()A)BorderLayout B)FlowLayoutC)GridLayout D)CardLayout9. 如果有一个对象myListener ( 其中myListener 对象实现了ActionListener 接口), 下列哪条语句使得myListener 对象能够接受处理来自于smallButton按钮对象的动作事件A. (myListener);B. (myListener);C. (myListener);D. (myListener);10. 下列各种布局管理器中Window类、JDialog类和JFrame类的默认布局是()A.FlowLayout B.CardLayout C.BorderLayout D.GridLayout11. JFrame对象默认的布局管理器是()A、FlowLayoutB、BorderLayoutC、CardLayoutD、null12. 在下列各种容器中,最简单的无边框的又不能移动和缩放的只能包含在另一种容器中的容器是()A.Window B.JDialog C.JFrame D.JPanel13 下列关于组件类的描述中,错误的是()A.组件类中包含了文本组件类(TextComponent)和菜单组件类(MenuComponent)B.标签(JLabel)和按钮(JButton)是组件类(Component)的子类C.面板(JPanel)和窗口(Window)是容器类(Container)的子类D.文本框(JTextField)和文本区(JTextArea)是文本组件类(JTextComponent)的子类14 在对下列语句的解释中,错误的是()(this);A.but是某种事件对象,如按钮事件对象B.this表示当前容器C.ActionListener是动作事件的监听者D.该语句的功能是将but对象注册为this对象的监听者15. 下列关于菜单和对话框的描述中,错误的是()A.JFrame容器是可以容纳菜单组件的容器B.菜单条中可包含若干个菜单,菜单中又可包含若干菜单项,菜单项中还可包含菜单子项C.对话框内不可以含有菜单条D.对话框与JFrame一样都可作为程序的底层容器16. 所有GUI标准组件类的父类是()A.JButtom B.List C.Component D.Container17.4.2填空题1.在需要自定义Swing构件的时候,首先要确定使用那种构件类作为所定制构件的______,一般继承Jpanel类或更具体的Swing类.2.Swing的事件处理机制包括__________、事件和事件处理者。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章图形用户界面在应用程序开发中,友好的用户界面是一个最基本的要求,本章将使用Java中提供的java.AWT和javax.Swing类包中有关组件设计用户界面。
7.1 实验一:一般用户界面的实现实验目的(1). 了解AWT和Swing常用容器组件和基本组件的作用和功能。
(2). 了解各类布局管理器的作用和功能。
(3). 使用各类布局管理器和组件创建程序的图形用户界面。
实验要求使用java.AWT和javax.Swing类包中提供了设计用户界面的各种组件,诸如Frame、JFrame、Panel、JPanel等容器组件、TextField、JTextField、Label、JLabel、Button、JButton 等基本组件等,编写程序创建并实现简洁明了的用户界面。
实验内容使用AWT和Swing组件创建一般的应用程序用户界面。
实验示例7.1.1在前边定义了公司的职员信息类,成员变量包括ID(身份证)、name(姓名)、sex(性别)、birthday(生日)、home(籍贯)、address(居住地)和number(职员号),设计一个录入或显示职工信息的程序界面(以FlowSaylout布局安排组件)。
实现该示例的步骤如下:⑴简要分析可以采用Frame容器组件构建用户界面,使用Label组件显示标识,使用TextField组件输入或显示个人信息,使用Button组件确定诸如输入、显示或退出操作。
可以建立一个Frame类的派生类EmployeeMess来完成用户界面的构建。
⑵根据上述简要分析,给出如下参考程序代码(EmployeeMess.java):/*公司职员信息界面程序 EmployeeMess.java*使用AWT组件构建,采用FlowLayout布局*/图7-1 示例7.1.1用户界面import java.awt.*;public class EmployeeMess extends Frame{TextField ID = new TextField(18);TextField name = new TextField(10);TextField birthday = new TextField(10);TextField sex = new TextField(2);TextField home = new TextField(18);TextField address = new TextField(18);TextField brithday = new TextField(10);TextField number = new TextField(5);Button oprate = new Button("操作");Button exit = new Button("退出");public EmployeeMess(){super("公司职员信息");this.setLayout(new FlowLayout());this.add(new Label("身份证号码")); //把组件加入到框架窗口中this.add(ID);this.add(new Label("姓名"));this.add(name);this.add(new Label("性别"));this.add(sex);this.add(new Label("出生日期"));this.add(birthday);this.add(new Label("籍贯"));this.add(home);this.add(new Label("居住地"));this.add(address);this.add(new Label("职工号"));this.add(number);this.add(oprate);this.add(exit);this.pack();//按合适大小显示对象this.setVisible(true); //设置组件是可见的}} ⑶ 编译EmployeeMess.java 程序,生成EmployeeMess.class 类文件,以供其他应用程序所用。
⑷ 程序及分析程序中使用了AWT 组件来构建用户界面,在Frame 容器上摆放Label 、TextField 和Button 组件,由于采用了FlowLayout 布局,所以布局在容器上组件的大小不会随容器大小的改变而改变,而组件所在的行会改变。
⑸ 测试EmployeeMess 类的功能。
编写一个简单的应用程序,创建EmployeeMess 对象,验证EmployeeMess 的功能。
参考代码如下:public class TestEmployeeMess{public static void main( String[] args ){new EmployeeMess();}图7-2 示例7.1.2程序界面} 编译并运行测试程序,用户界面经鼠标拖动改变大小后,如图7-1所示。
注意:该程序不能正常退出,只能强行退出。
自由练习7.1 仿照实验示例7.1.1,设计一个录入或显示学生信息的程序界面。
学生信息量包括ID(身份证)、name(姓名)、sex(性别)、birthday(生日)、home(籍贯)、number(学号)和result (入学成绩),以FlowSaylout 布局安排组件。
实验示例7.1.2 编程实现一个如图7-2的小学生习题训练用户界面。
实现该示例的步骤如下:⑴ 简要分析为了使该界面应用于其他程序,可以使用JPanel 组件构建界面。
根据要求该界面有3行组成:第一行由一个标签(JLabel )和一个按钮(JButton )组件构成;第二行可以由4个标签(分别表示两个运算数、运算符号和等号)和一个文本框(JTextField )组件构成;第3行由一个按钮构成。
由上所述,由于第1行和第2行含有多个组件,可以将它们分别以FlowLayout 流布局放在JPanel 容器中。
这样就可以GridLayout 布局按3行的形式将所有组件摆放到界面上。
⑵ 根据上述简要分析,可以给出如下参考程序代码(StudentSreen.java):/* 小学生训练题界面* StudentScreen.java*/import java.awt.*;import javax.swing.*;public class StudentScreen extends JPanel{JLabel num1=new JLabel("0 "); //显示第1个运算数JLabel num2=new JLabel("0 "); //显示第2个运算数JLabel op=new JLabel("+"); //显示运算符号JLabel info=new JLabel("测试时间10分钟,按'开始'键开始!");JTextField answer=new JTextField(10); //输入运算结果JButton next = new JButton("下一题"); //操作按钮JButton start = new JButton("开始"); //操作按钮JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel();public StudentScreen(){setLayout(new GridLayout(3,1));pan1.add(info); //将第1行的组件放在pan1容器中pan1.add(start);//……………………pan2.add(num1); //将第2行的组件放在pan2容器中pan2.add(op); //……………………pan2.add(num2); //……………………pan2.add(new JLabel("="));//……………………pan2.add(answer); //……………………add(pan1); //将pan1(第1行的组件)摆放在界面上add(pan2); //将pan2(第2行的组件)摆放在界面上add(next); ////将next按钮(第3行的组件)摆放在界面上}}⑶编译StudentSreen.java程序,生成StudentSreen.class类文件,以供其他应用程序所用。
⑷程序及分析本程序使用swing组件构建用户屏幕,采用JPanel容器嵌套JPanel容器的方式,目的是该界面可以添加到Frame或JFrame容器上,为其他程序所用。
⑸测试StudentSreen类的功能。
编写一个简单的应用程序,将StudentSreen对象添加到JFrame窗口上,验证StudentSreen的功能。
参考代码如下:import javax.swing.*;public class TestStudentScreen extends JFrame{TestStudentScreen(){add(new StudentScreen());setVisible(true);pack();setDefaultCloseOperation(3);}public static void main(String [] args){new TestStudentScreen();}}编译并执行该程序,观看程序的界面效果。
实验示例7.1.3 在实验示例7.1.1中设计的用户界面,是用FlowSayout布局组件的,组件的大小不随容器的变化而变化,布局有些不太整齐,修改此用户界面,改用GridLayout 布局,使界面整洁一些。
实现该示例的步骤如下:⑴简要分析为了界面的整洁性,可以使用Swing组件构建用户界面,为了使该界面能部署在JFrame 窗体容器上,采用JPanel容器来构建用户界面屏幕,并在JPanel容器中嵌套两个JPanel 容器,一个JPanel容器上布局用于显示标识的Label组件和输入或显示个人信息的TextField 组件,以一行四列的形式摆放组件;另一个JPanel容器上布局Button组件,以一行两列的形式摆放。
⑵根据上述简要分析,给出如下参考程序代码(EmployeeMess2.java):/*公司职员信息界面程序 EmployeeMess2.java*使用Swing组件构建,采用GridLayout布局*/import java.awt.*;import javax.swing.*;public class EmployeeMess2 extends JPanel{JTextField ID = new JTextField(18);JTextField name = new JTextField(10);JTextField birthday = new JTextField(10);JTextField sex = new JTextField(2);JTextField home = new JTextField(18);JTextField address = new JTextField(18);JTextField number = new JTextField(5);JButton oprate = new JButton("操作");JButton exit = new JButton("退出");JPanel jp1=new JPanel();JPanel jp2=new JPanel();public EmployeeMess2(){this.setLayout(new GridLayout(2,1));//设置JPanel容器上组件布局为2行1列 jp1.setLayout(new GridLayout(0,4)); //设置jp1容器上组件的布局为n行4列 jp1.add(new JLabel("身份证号码")); //把组件加入jp2容器中jp1.add(ID); //..................jp1.add(new JLabel("姓名")); //..................jp1.add(name); //..................jp1.add(new JLabel("性别")); //..................jp1.add(sex); //..................jp1.add(new JLabel("出生日期")); //..................jp1.add(birthday); //..................jp1.add(new JLabel("籍贯")); //..................jp1.add(home); //..................jp1.add(new JLabel("居住地")); //..................jp1.add(address); //..................jp1.add(new JLabel("职工号")); //..................jp1.add(number); //..................jp2.setLayout(new GridLayout(1,2)); //设置jp2容器上组件的布局为1行2列 jp2.add(oprate); //将按钮添加到jp2容器上jp2.add(exit); //.....................this.add(jp1); //将jp1放入当前容器中this.add(jp2); //............................this.setSize(200,200);}}⑶编译EmployeeMess2.java程序,生成EmployeeMess2.class类文件,以供其他应用程序所用。