实验9:JavaGUI程序设计(1)
一、实验目的
(1)了解Java系统图形用户界面的工作原理和界面设计步骤。 (2)掌握图形用户界面的各种常用组件的使用方法。 (3)掌握图形用户界面各种布局策略的设计与使用。
二、实验任务
(1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。 (2)按要求编写一个Java Application程序,并编译、运行这个程序。
三、实验内容
1.输入下面的Java Application程序,运行该程序,说明程序的功能。1: import java.awt.*;
2: public class TestFlowLayout {
3: public static void main(String args[]) { 4: Frame f = new Frame(\5: Button button1 = new Button(\确定\6: Button button2 = new Button(\打开\7: Button button3 = new Button(\关闭\8: Button button4 = new Button(\取消\9: f.setLayout(new FlowLayout()); 10: f.add(button1); 11: f.add(button2); 12: f.add(button3); 13: f.add(button4); 14: f.setSize(100,100); 15: f.setVisible(true); 16: } 17:}
- 21 -
显示一个100*100的窗口,窗口内添加了四个按钮,其布局为流式布局管理器。当窗口f的尺寸被重置后,其FlowLayout型的布局也会随之发生变化,各按钮的大小不变,但其相对位置会变化。
2.编写一个Java Application程序,该程序运行的运行结果如下所示。
import java.awt.*;
public class BorderLayoutWindow extends Frame { public BorderLayoutWindow() {
setLayout(new BorderLayout()); add(new Button(\ add( new Button(\ add( new Button(\ add( new Button(\ add( new Button(\ }
public static void main(String args[]) {
BorderLayoutWindow window = new BorderLayoutWindow(); window.setTitle(\ window.pack();
window.setVisible(true); } }
3.编写一个Java Application程序,该程序运行的运行结果如下所示。
import java.awt.*;
public class GridLayoutWindow extends Frame { public GridLayoutWindow() {
setLayout(new GridLayout(3,2)); add(new Button(\ add(new Button(\ add(new Button(\
- 22 -
add(new Button(\ add(new Button(\ add(new Button(\ }
public static void main(String args[]) {
GridLayoutWindow window = new GridLayoutWindow(); window.setTitle(\ window.pack();
window.setVisible(true); } }
- 23 -
实验10:JavaGUI程序设计(2)
一、实验目的
(1)了解图形用户界面的事件响应机制。 (2)掌握鼠标事件编程方法。
(3)掌握AWT中Color和Font类的使用方法。
二、实验任务
(1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。 (2)按要求编写一个Java Application程序,并编译、运行这个程序。
三、实验内容
1.输入下面的Java Application程序,运行该程序,说明程序的执行过程。
1: import java.awt.*;
2: import java.awt.event.*;
3: public class TestActionEvent {
4: public static void main(String args[]) { 5: Frame f = new Frame(\6: Button b = new Button(\7: Monitor bh = new Monitor(); 8: b.addActionListener(bh); 9: f.add(b,BorderLayout.CENTER); 10: f.pack(); 11: f.setVisible(true); 12: } 13:}
1: class Monitor implements ActionListener {
2: public void actionPerformed(ActionEvent e) { 3: System.out.println(\ 4: } 5: }
执行过程:创建一个框架f,其标题为Test。在框架中添加了一个标签为“Press Me”的按钮b。为按钮b注册监听器bh,监听ActionEvent事件。当鼠标单击框架中的按钮b时,会触发ActionEvent事件,执行事件处理器actionPerformed(ActionEvent e),即在屏幕上输出文本信息“a button has been pressed”。
- 24 -
2.编写一个Java Application程序,该程序运行的运行结果如下所示。
import java.awt.*;
public class MenuTest{ public static void main(String args[]){ Frame fr=new Frame(\ MenuBar mb=new MenuBar(); fr.setMenuBar(mb); Menu m1=new Menu(\ Menu m2=new Menu(\ Menu m3=new Menu(\ mb.add(m1); mb.add(m2); mb.setHelpMenu(m3); MenuItem m11=new MenuItem(\ MenuItem m12=new MenuItem(\ MenuItem m13=new MenuItem(\ MenuItem m14=new MenuItem(\ m1.add(m11); m1.add(m12); m1.add(m13); m1.addSeparator(); m1.add(m14); fr.pack(); fr.setVisible(true); } } 3.编写一个Java Application程序,该程序运行的运行结果如下所示。
- 25 -