第9章 GUI - 补充案例(8)

2019-08-30 19:22

博学谷——让IT教学更简单,让IT学习更有效

}

}

public static void main(String[] args) { new Example18 (); }

}

} else { }

field.setText(\您选择的城市是:\

});

field = new JTextField(20);

panel.add(comboBox); // 在面板中添加组合框 panel.add(field); // 在面板中添加文本框 // 在内容面板中添加JPanel面板

this.add(panel, BorderLayout.NORTH); this.setSize(350, 100);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);

运行程序会弹出窗体,在窗体中有可选择的下拉列表框,选择前后的效果如图9-22所示。

图9-22 运行结果

三、案例总结

1、JComboBox组件被称为组合框,它将所有选项折叠收藏在一起,默认显示的是第一个添加的选项。 2、JComboBox组合框组件分为可编辑和不可编辑两种形式,对于不可编辑的组合框,用户只能在现有的选项列表中进行选择,而对于可编辑的组合框,用户既可以在现有的选项中选择,也可以自己输入新的内容。需要注意的是,自己输入的内容只能作为当前项显示,并不会添加到组合框的选项列表中。

案例9-19 如何创建下拉式菜单 一、案例描述

1、 考核知识点

编号:00109023 名称:下拉式菜单

2、 练习目标

? 掌握如何创建下拉式菜单

36

博学谷——让IT教学更简单,让IT学习更有效

3、 需求分析

下拉式菜单,大家肯定很熟悉,因为计算机中很多文件的菜单都是下拉式的,创建下拉式菜单需要使用三个组件:JMenuBar(菜单栏)、JMenu(菜单)和JMenuItem(菜单项),为了让初学者熟悉下拉菜单,本案例演示如何创建下拉菜单。

4、 设计思路(实现原理)

1) 定义类Example19继承自JFrame,用于创建一个下拉式菜单。 2) 创建JMenuBar菜单栏对象,将其放置在JFrame窗口的顶部 3) 创建JMenu菜单对象,将其添加到JMenuBar菜单栏中 4) 创建JMenuItem菜单项,为菜单项添加事件监听器,当点击菜单项会弹出一个模态的JDialog窗口,

将菜单项添加到JMenu菜单中。 5) 为菜单对象添加一个分隔符。

二、案例实现

定义Example19类,代码如下所示:

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

public class Example19 extends JFrame { public Example19() {

JMenuBar menuBar = new JMenuBar(); // 创建菜单栏

this.setJMenuBar(menuBar); // 将菜单栏添加到JFrame窗口中 JMenu menu = new JMenu(\文件\创建文件菜单 JMenu menu1 = new JMenu(\编辑\创建编辑菜单 JMenu menu2 = new JMenu(\格式\创建格式菜单 JMenu menu3 = new JMenu(\查看\创建查看菜单 menuBar.add(menu); // 将菜单添加到菜单栏上 menuBar.add(menu1); // 将菜单添加到菜单栏上 menuBar.add(menu2); // 将菜单添加到菜单栏上 menuBar.add(menu3); // 将菜单添加到菜单栏上 // 创建两个菜单项

JMenuItem item1 = new JMenuItem(\弹出窗口\JMenuItem item2 = new JMenuItem(\关闭\// 为菜单项添加事件监听器

item1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) { }

// 创建一个JDialog窗口

JDialog dialog = new JDialog(Example023.this, true); dialog.setTitle(\弹出窗口\dialog.setSize(200, 200); dialog.setLocation(50, 50); dialog.setVisible(true);

});

37

博学谷——让IT教学更简单,让IT学习更有效

}

}

public static void main(String[] args) { }

new Example19 ();

item2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) { }

System.exit(0);

});

menu.add(item1); // 将菜单项添加到菜单中 menu.addSeparator(); // 添加一个分隔符 menu.add(item2);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300, 300); this.setVisible(true);

运行程序,生成的窗体如图9-23所示。

图9-23 生成的窗体

三、案例总结

1、在GUI程序中,菜单是很常见的组件,利用Swing提供的菜单组件可以创建出多种样式的菜单,创建下拉式菜单需要使用三个组件:

(1)JMenuBar(菜单栏): JMenuBar表示一个水平的菜单栏,它用来管理菜单,不参与同用户的交互式操作。菜单栏可以放在容器的任何位置,但通常情况下会使用顶级窗口(如JFrame、JDialog)的setJMenuBar(JMenuBar menuBar)方法将它放置在顶级窗口的顶部。

(2)JMenu(菜单):JMenu表示一个菜单,它用来整合管理菜单项。菜单可以是单一层次的结构,也可以是多层次的结构。大多情况下,使用JMenu(String text)构造函数创建JMenu菜单,参数text表示菜单上的文本。

(3)JMenuItem(菜单项):JMenuItem表示一个菜单项,它是菜单系统中最基本的组件。和JMenu菜单一样,在创建JMenuItem菜单项时,通常会使用JMenumItem(String text)这个构造方法为菜单项指定文本内容。

38

博学谷——让IT教学更简单,让IT学习更有效

2、JMenuItem继承自AbstractButton类的,因此可以把它看成是一个按钮,如果使用无参的构造方法创建了一个菜单项,则可以调用从AbstractButton类中继承的setText(String text)方法和setIcon()方法为其设置文本和图标。

案例9-20 如何创建弹出式菜单 一、案例描述

1、 考核知识点

编号:00109024 名称:弹出式菜单

2、 练习目标

? 掌握如何创建弹出式菜单

3、 需求分析

弹出式菜单,相信大家也不会陌生,当我们在Windows桌面点击鼠标右键时出现的菜单就是弹出式菜单。在Java的Swing组件中,弹出式菜单用JPopupMenu表示,为了让初学者熟悉弹出式菜单,本案例演示如何创建弹出式菜单。

4、 设计思路(实现原理)

1) 定义类Example20继承自JFrame,用于创建一个弹出式菜单。 2) 创建JPopupMenu菜单对象,将其放置在JFrame窗口的顶部。 3) 创建三个菜单项:refreshItem、createItem、exitItem。

4) 为exitItem菜单项添加事件监听器,当点击它时会退出程序。

5)为JFrame窗口添加clicked鼠标事件,监听器如果点击的是鼠标的右键,显示JPopupMenu菜单。

二、案例实现

定义Example20类,代码如下所示:

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

public class Example20 extends JFrame {

private JPopupMenu popupMenu; public Example20() { // 创建一个JPopupMenu菜单

popupMenu = new JPopupMenu(); // 创建三个JMenuItem菜单项

JMenuItem refreshItem = new JMenuItem(\查看\JMenuItem createItem = new JMenuItem(\新建\JMenuItem exitItem = new JMenuItem(\退出\// 为exitItem菜单项添加事件监听器

exitItem.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

System.exit(0);

39

博学谷——让IT教学更简单,让IT学习更有效

}

}

public static void main(String[] args) { }

new Example20 ();

}

});

// 往JPopupMenu菜单添加菜单项 popupMenu.add(refreshItem); popupMenu.add(createItem); popupMenu.addSeparator(); popupMenu.add(exitItem);

// 为JFrame窗口添加clicked鼠标事件监听器 this.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e) { }

// 如果点击的是鼠标的右键,显示JPopupMenu菜单 if (e.getButton() == e.BUTTON3) { }

popupMenu.show(e.getComponent(), e.getX(), e.getY());

});

this.setSize(300, 300);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);

运行程序,生成的窗体如图9-24所示。

图9-24 生成的窗体

三、案例总结

1、定义了一个类Example20继承自JFrame。

2、创建了一个JPopupMenu菜单,其增加了refreshItem、createItem和exitItem三个JMenuItem菜单项,菜单项在默认情况下是不可见的,所以要通过调用show(Component invoker,int x,int y)方法将菜单项显示出来,参数invoker表示JPopupMenu菜单显示位置的参考组件,x和y表示invoker组件坐标空间中的

40

博学谷——让IT教学更简单,让IT学习更有效

一个坐标,显示的是JPopupMenu菜单的左上角坐标。为exitItem菜单项添加了一个ActionListener事件监听器,当点击它时,会退出程序。代码的第24到31行代码为当前窗口添加了一个鼠标事件监听器,监听鼠标的mouseClicked事件,当鼠标按下时,调用MouseEvent的getButton()判断是否按下了鼠标的右键(BUTTON3),如果是就调用JPopupMenu的show()方法将其显示,并将鼠标点击的坐标作为弹出菜单的左上角坐标。

41


第9章 GUI - 补充案例(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017-2018学年甘肃省平凉市静宁一中高二(上)期中数学试卷(文

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

马上注册会员

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