实训项目六:Swing图形用户界面程序设计

2019-02-15 11:18

实训项目六:Swing图形用户界面程序设计

一、实训目的

1)了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法; 2)了解如何使用布局管理器对组件进行管理,以及如何使用 Java 的事件处理机制; 3)了解菜单组件的使用方法以及菜单的事件处理机制; 4)了解对话框的使用方法;

二、实训要求

1. 掌握在 JFrame容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。

2. 理解 Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 3. 掌握编写独立运行的窗口界面的方法。 4. 了解 Java Swing 组件的使用方法。 5. 了解对话框的使用方法。

三、实训内容

(一)创建图形用户界面

图形用户界面(Graphic User Interface ,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。组件(Component)是构成GUI 的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如JApplet、Panel(面板)、JFrame(窗口)等。通过容器的add 方法把组件加入到容器中。

1. 在JFrame 中添加标签、按钮并使用网格布局 ¨ 程序功能:在JFrame的内容窗格容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。 ¨ 编写Gui_1.java 程序文件,源代码如下。

import javax.swing.JFrame; import javax.swing.*; import java.awt.*;

public class Gui_1 extends JFrame { JLabel l1; JButton b1, b2, b3, b4, b5, b6; public Gui_1(){ super(\基本组件的设计\ Container c=this.getContentPane(); c.setLayout(new GridLayout(3,3)); //设置网格布局(3 行3 列共9 个网格) l1=new JLabel(\标签1\

b1 = new JButton(\按钮1\ b2 = new JButton(\按钮2\ b3 = new JButton(\按钮3\ b4 = new JButton(\按钮4\ c.add(l1); c.add(b1); c.add(b2); c.add(b3); c.add(new JLabel()); c.add(b4); c.add(new JButton(\按钮5\ c.add( new JButton(\按钮6\ c.add(new JLabel(\标签2\ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension screen =

Toolkit.getDefaultToolkit().getScreenSize(); this.setSize(500, 300);

setLocation((int)((screen.getWidth()-getWidth())/2),(int)((screen.getHeight()-getHeight())/2)); } public static void main(String[] args){ Gui_1 myapp=new Gui_1(); myapp.setVisible(true); } }¨

编译程序Gui_1.java。 ¨ 练习:将该程序的布局器改成FlowLayout,BorderLayout以及BoxLayout。 2. 在面板中添加组件 ¨ 程序功能:在JFrame中添加面板容器,并分别在JFrame、面板容器中添加组件并使用不同的布局管理方式。 ¨ 编写GUI_2.java 程序文件,源代码如下。 import java.awt.*; import javax.swing.*;

public class GUI_2 extends JFrame { public GUI_2(){ super(\组合布局方式的使用\ Container c=getContentPane();

c.setLayout(new FlowLayout()); c.setFont(new Font(\ JLabel l=new JLabel(\这是最底层的JFrame容器中的标签\ c.add(l); JPanel panel1=new JPanel(); c.add( panel1); panel1.setBackground(Color.blue); panel1.setForeground(Color.red); panel1.setLayout(new BorderLayout());//设置边界布局 panel1.add(\北\ panel1.add(\南\ panel1.add(\东\ panel1.add(\西\ panel1.add(\这是在 Panel1 面板 中部添加的标签\ JPanel panel2=new JPanel(); c.add( panel2); panel2.setLayout(new GridLayout(3,1)); //设置网格布局 Choice ch=new Choice ();//创建下拉式列表 ch.addItem(\北京\ ch.addItem(\上海\ ch.addItem(\天津\ JLabel l1=new JLabel(\这是在 Panel2 面板中的标签\ JButton b1=new JButton(\中的按钮\ panel2.setBackground(Color.green); panel2.add(l1); panel2.add(b1); panel2.add(ch); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension screen =

Toolkit.getDefaultToolkit().getScreenSize(); this.setSize(300, 300);

setLocation((int)((screen.getWidth()-getWidth())/2),(int)((screen.getHeight()-getHeight())/2)); } public static void main(String[] args) { GUI_2 app=new GUI_2(); app.setVisible(true); } } ¨ 编译程序GUI_2.java。

(二)了解事件处理机制

在图形用户界面中,程序和用户的交互是通过组件响应各种事件来实现的。例如,用户单击了一个按钮,意味着发生了按钮的单击事件;选中下拉框中的一个选项,意味着发生了一个选项事件。在Java 中能产生事件的组件叫做事件源,如按钮。如果希望对单击按钮事件进行处理,可给事件源(按钮)注册一个事件监听器(如包含按钮的容器),如同签订了一个委托合同,当事件源发生事件时,事件监听器就代替事件源对发生的事件进行处理,这就是所谓的委托事件处理机制。

1.单击按钮的事件处理程序 ¨ 程序功能:使用手工布局设置组件标签、按钮的位置,为按钮编写单击事件处理方法。当用户用鼠标单击按钮时,会听到一声响声,并在控制台输出事件源名称。 ¨ 编写ButtonEvent.java 程序文件,源代码如下。

import javax.swing.*; import java.awt.*;

import java.awt.event.*;

public class ButtonEvent extends JFrame implements ActionListener { public ButtonEvent(){ super(\按钮事件实例\ Container c=getContentPane(); c.setLayout(null);//关闭默认的顺序管理布局 JLabel l=new JLabel(\按一下按钮可听到响声!\ c.add(l); l.setBounds(40,10,150,40); JButton b=new JButton(\按钮1\ c.add(b); JButton b2=new JButton(\按钮2\ c.add(b2); b.setBounds(60,50,70,40); b.addActionListener (this); // 注册事件源的动作监听者 b2.setBounds(60,120,70,40); b2.addActionListener (this); // 注册事件源的动作监听者 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension screen =

Toolkit.getDefaultToolkit().getScreenSize(); this.setSize(500, 300);

setLocation((int)((screen.getWidth()-getWidth())/2),(int)((screen.getHeight()-getHeight())/2)); } public void actionPerformed(ActionEvent e) {//实现单击事件接口的方法

Toolkit.getDefaultToolkit ().beep(); //单击事件发生时作出的反应 System.out.println(\事件源是:\ } public static void main(String[] args) { ButtonEvent app=new ButtonEvent(); app.setVisible(true); } } ¨ 编译程序ButtonEvent.java

2.选择复选框和单选框按钮的事件处理程序 ¨ 程序功能:在JFrame的内容窗格上创建复选框、单选框、文本区域、单行文本框等组件,并实现根据用户输入的10 进制数,选择不同选项可转换为2、8、16 进制数。 ¨ 编写MyComputer.java 程序文件,源代码如下。

import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.*; import java.awt.*;

public class MyComputer extends JFrame implements ItemListener{ JTextArea area=new JTextArea(8,30);//创建文本区 String Item[]={\进制\进制\进制\进制\ JRadioButton radio[]=new JRadioButton[5]; JLabel l=new JLabel(\输入10 进制数:\ JTextField TF=new JTextField(6);//创建单行文本框 public MyComputer(){ super(\组件综合实例\ Container c=getContentPane(); c.setLayout(new FlowLayout()); JPanel p1=new JPanel(); p1.setSize(300, 70); p1.setLayout(new FlowLayout()); p1.add(l); p1.add(TF); c.add(p1); JPanel p2=new JPanel(); p2.setLayout(new GridLayout(1,5)); p2.add(new JLabel(\请选择进制:\ p2.setSize(300, 70);


实训项目六:Swing图形用户界面程序设计.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计算机基础复习题三

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: