【兔惊喜】Java语言程序设计实验八第八章Swing图形用户界面程序设计实验任务一

实验报告

课程 Java语言程序设计 实验名称 第八章Swing图形用户界面程序设计实验任务(一) 第 页

专业 班级 学号__ __ 姓名

实验日期: 2010 年 11 月 2 日 报告退发 (订正 、 重做)

一、实验目的

? 掌握框架、对话框、面板等容器的使用 ? 掌握标签、按钮等组件的使用

? 初步了解java图形界面事件处理机制的原理

二、实验环境

1、微型计算机一台

2、DOS或WINDOWS操作系统,j2se开发包

三、实验内容

1、 创建一个框架类实例对象app作为窗体 2、 往窗体里添加三个按钮(b1、b2、b3)、两个标签(l1,l2)、三个文本输

入框(t1、t2、t3),要求标签即包含一个图标也包含文本,且文本覆盖在图标的上面.

3、 可以在t1中输入文本信息,点击按钮b1后,标签l1的内容被设置为t1

中的文本信息.

4、 点击按钮t2时,弹出一个有模一般对话框,对话框中包含一个文本编辑

框(dt)和两个按钮(db1、db2),db1为确认按钮,db2为取消按钮,当点击对话框db1确定按钮时,将文本编辑框dt中的文本信息返回,当点击取消或直接关闭对话框,返回值为:“点击取消或关闭”.将对话框的返回值在t2中显示.

5、 点击按钮t3时,弹出一个选择输入对话框(标准对话框之一).要求将该

对话框的返回值在t3中显示.

6、 设计一个计算器,要求见第八章习题6

四、实验步骤和结果

1.在Eclipse中新建名字为test7的工程. 2.新建swingtest.java类.

3.实验内容1至5程序如下所示: // swing1.java

import java.awt.Container; import java.awt.FlowLayout;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.BoxLayout;

1 / 9

import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel;

import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField;

public class swingtest extends JFrame { public static void main(String[] args) { final JFrame app=new JFrame(); // 创建按钮、标签、文本输入框这三类面板

JPanel jpbt=new JPanel(); JPanel jplabel=new JPanel(); JPanel jptextfield=new JPanel(); // 采用盒式布局管理器 // 按钮在窗体南部,标签在北部,文本输入框在中部 jpbt.setLayout(new BoxLayout(jpbt, BoxLayout.X_AXIS));//组件在容器中沿水平方向排列

JButton b1=new JButton(\ JButton b2=new JButton(\ final JButton b3=new JButton(\ jpbt.add(b1); jpbt.add(b2); jpbt.add(b3); jplabel.setLayout(new BoxLayout(jplabel, BoxLayout.X_AXIS)); final JLabel l1=new JLabel(\ImageIcon(\ JLabel l2=new JLabel(\ImageIcon(\ l1.setHorizontalTextPosition(JLabel.CENTER); l2.setHorizontalTextPosition(JLabel.CENTER); jplabel.add(l1); jplabel.add(l2); jptextfield.setLayout(new BoxLayout(jptextfield, BoxLayout.X_AXIS)); final JTextField t1=new JTextField(\ final JTextField t2=new JTextField(\ final JTextField t3=new JTextField(\ jptextfield.add(t1); jptextfield.add(t2); jptextfield.add(t3); b1.addActionListener(new ActionListener()

2 / 9

{ @Override public void actionPerformed(ActionEvent arg0) { l1.setText(t1.getText()); } });

b2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { final JDialog jd=new JDialog(app,\对话框!\

Container c=jd.getContentPane(); c.setLayout(new FlowLayout());

final JTextField jt=new JTextField(10); JButton db1=new JButton(\

db1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { t2.setText(jt.getText()); jd.dispose(); } });

JButton db2=new JButton(\

db2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { t2.setText(\点击取消或关闭\ jd.dispose(); } });

/* //当点击\直接关闭对话框\,返回值为:“点击取消或关闭”. * jd.addWindowListener(new WindowListener() { @Override public void windowOpened(WindowEvent arg0) { // TODO Auto-generated method stub } @Override

3 / 9

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4