JAVA面向对象程序设计实验指导书 add(btn2);
tf1.addActionListener(this); tf2.addActionListener(this); btn1.addActionListener(this);
btn2.addActionListener(this); show(); }
public static void main(String args[]) { new LX6_6(); }
public void actionPerformed(ActionEvent e) { if (e.getSource()==btn1)
f.setText(\你按下了“\”按钮\if (e.getSource()==tf1)
Area.append(\用户名:\if (e.getSource()==tf2)
Area.append(\电 话:\if (e.getSource()==btn2) {
for (int i=0; i<100000000; i++);
dispose();//只关闭当前窗口,注销该对象 } } }
(3)编译并运行程序,界面窗口如图6.6 所示。
图6.6
注意:文本区的事件处理方式。 3.为窗口添加菜单
(1) 程序功能:在窗口中添加菜单栏,在菜单栏添加菜单项,并添加下拉菜单和2 级菜单,通过选择菜单项可以执行不同操作,如“打开”可打开LX6_6 类生成的窗口。
(2)编写LX6_7.java 程序文件,源代码如下。 import java.awt.*;
import java.awt.event.*;
public class LX6_7 extends Frame implements ActionListener {
Panel p=new Panel();
Button b=new Button(\退出\
- 27 -
JAVA面向对象程序设计实验指导书
MenuBar mb=new MenuBar(); // 以下生成菜单组件对象 Menu m1=new Menu(\文件\
MenuItem open=new MenuItem(\打开\MenuItem close=new MenuItem(\关闭\MenuItem exit=new MenuItem(\退出\
Menu m12=new Menu(\编辑\
MenuItem copy=new MenuItem(\复制\MenuItem cut=new MenuItem(\剪切\MenuItem paste=new MenuItem(\粘贴\
Menu m2=new Menu(\帮助\
MenuItem content=new MenuItem(\目录\MenuItem index=new MenuItem(\索引\MenuItem about=new MenuItem(\关于\LX6_7() { super(\添加菜单的窗口\setSize(350,200); add(\
p.add(b); b.addActionListener(this); m1.add(open); // 将菜单项加入到菜单m1 中 m1.add(close);
m1.addSeparator(); // 在菜单中添加分隔条 m1.add(exit);
open.addActionListener(this); //给菜单项open 注册事件监听器
exit.addActionListener(this);
mb.add(m1); // 将菜单m1 加入到菜单栏mb 中 m12.add(copy); m12.add(cut); m12.add(paste);
m1.add(m12);//将m12 作为2 级菜单添加到m1 菜单项中
m2.add(content); m2.add(index); m2.addSeparator(); m2.add(about); mb.add(m2); setMenuBar(mb); // 设置菜单栏为mb show();// 显示组件
}
public static void main(String args[]) { new LX6_7(); } public void actionPerformed(ActionEvent e) {
if (e.getActionCommand()==\退出\System.exit(0);
if (e.getActionCommand()==\打开\new LX6_6(); }
(3)编译并运行程序,界面窗口如图6.7 所示。
- 28 -
JAVA面向对象程序设计实验指导书
图6.7
实验项目6 Swing编程训练
一、 实验目的
了解图形用户界面Java Swing组件的类层次,熟悉Java Swing的窗口、对话框、菜单、文本标签、按钮、文本框、选择框、进度条等的使用方法。
二、 实验要求
1. 掌握在Applet 容器中添加JSwing组件的方法。 2. 掌握Jframe的用法。
4. 了解Java Swing 其它组件的使用方法。 5. 了解对话框的使用方法。
三、 实验内容
(一)使用Swing 组件
在Java 中,能够实现图形用户界面的类库有两个:java.awt 和javax.swing。前者称为抽象窗口工具库AWT(Abstract Windows Toolkit),后者是Java 基础类库JFC(Java Foundation Classes) 的一个组成部分,它提供了一套功能更强、数量更多、更美观的图形用户界面组件。Swing组件名称和AWT 组件名称基本相同,但以J 开头,例如AWT 按钮类的名称是Button,在Swing 中的名称则是JButton。
1.在JApplet 中添加Swing 组件
(1)程序功能:在JApplet 中添加3 个带有图片的按钮和一个带有图片的标签。
(2)准备图片文件:在当前目录下建立一个image 文件夹,存放4 个图片文件,例如PreviousArrow.gif。
(3)编写LX6_8.java 程序文件,源代码如下。 import javax.swing.*; import java.awt.*; import java.awt.Color;
public class LX6_8 extends JApplet {
Container pane;
JPanel panel1,panel2;
JButton button1,button2,button3; JLabel label;
public void init() {
pane=getContentPane();
panel1=new JPanel(new FlowLayout()); panel2=new JPanel(new FlowLayout());
ImageIcon icon = new ImageIcon(\
- 29 -
JAVA面向对象程序设计实验指导书
button1=new JButton(icon);
button2=new JButton(new ImageIcon(\
button3=new JButton(new ImageIcon(\label=new JLabel(\图像标签\
new ImageIcon(\pane.setBackground(new Color(255,255,200)); panel1.setBackground(new Color(255,255,104)); panel2.setBackground(new Color(255,255,214));
button1.setToolTipText(\向上翻页按钮\button2.setToolTipText(\跳转按钮\button3.setToolTipText(\向下翻页按钮\
pane.add(\
pane.add(panel2,BorderLayout.SOUTH); panel1.add(button1); panel1.add(button2); panel1.add(button3); panel2.add(label); } }
(4)编译LX6_8.java。
(5)编写显示LX6_8.class 的页面文件。
(6)使用appletviewer 查看程序,结果如图6.8 所示。
图6.8
2.在JFrame 窗口中添加组件
(1)程序功能:创建JFrame 窗口,并在其中添加工具栏。
(2)准备图片文件:在当前目录下建立一个image 文件夹,存放3 个图片文件,例如PreviousArrow.gif。
(3)编写LX6_9.java 程序文件,源代码如下。 import javax.swing.*; import java.awt.*;
import java.awt.event.*;
public class LX6_9 extends JFrame implements ActionListener {
- 30 -
JAVA面向对象程序设计实验指导书 JButton button1,button2,button3; JToolBar toolBar; JTextArea textArea; JScrollPane scrollPane; JPanel panel;
public static void main(String[] args) { new LX6_9(); }
public LX6_9() {
super(\带有工具栏按钮的窗口\
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0); } });
button1=new JButton(new ImageIcon(\button2=new JButton(new ImageIcon(\
button3=new JButton(new ImageIcon(\button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); toolBar=new JToolBar(); toolBar.add(button1); toolBar.add(button2); toolBar.add(button3);
textArea=new JTextArea(6,30);
scrollPane=new JScrollPane(textArea);
panel=new JPanel(); setContentPane(panel);
panel.setLayout(new BorderLayout());
panel.setPreferredSize(new Dimension(300,150)); panel.add(toolBar,BorderLayout.NORTH); panel.add(scrollPane,BorderLayout.CENTER);
pack(); show(); }
public void actionPerformed(ActionEvent e) { String s=\
if (e.getSource()==button1) s=\左按钮被单击\\n\
else if (e.getSource()==button2) s=\中按钮被单击\\n\
else if (e.getSource()==button3)
s=\右按钮被单击\\n\} }
(4)编译LX6_9.java。
(5)运行LX6_9.class,产生的窗口界面如图6.9 所示。
- 31 -