1、单元单元 16swing 高级控件的使用高级控件的使用单元目标 熟练使用 JCombox、JList 控件 熟练使用 JCheckBox、JRadioButton 控件 掌握选择事件处理的应用 掌握使用 JMenuBar、JMenu 和 JMenuItem 构造应用程序菜单; 掌握使用 JPopupMenu 构造应用程序弹出式菜单; 能够处理鼠标事件。学习任务 011.任务描述设计一个简单的实现字体设置窗口程序,可根据用户选择设置字体的种类、字号、字形、颜色等属性。2.运行结果图 4-13 字体设置程序界面知识准备16.1 组合框 JComboBox组合框(JComboBox)用于在多项选择中
2、选择一项的操作,用户只能选择一个项目。在未选择组合框时,组合框显示为带按钮的一个选项的形式,当对组合框按键或单击时,组合框会打开可列出多项的一个列表,提供给用户选择。由于组合框占用很少的界面空间,所以当项目较多时,一般用它来代替一组单选按钮。组合框有可编辑和不可编辑两种形式。如果将组合框声明为可编辑的,用户字体设置窗口程序设计字体设置窗口程序设计也可以在文本框中直接输入自己的数据,缺省情况下组合框是不可编辑的。组合框事件可以是 ActionEvent 事件和 ItemEvent 事件。 事件处理方法与其他同类事件的处理方法类似。组合框的构造方法和常用方法:方法名方法名方法功能方法功能JComb
3、oBox()构造一个缺省模式的组合框JComboBox(Object items)通过指定数组构造一个组合框JComboBox(Vector items)通过指定向量构造一个组合框JComboBox(ComboBoxModel aModel)通过一个 ComBox 模式构造一个组合框int getItemCount()返回组合框中项目的个数int getSelectedIndex()返回组合框中所选项目的索引Object getSelectedItem()返回组合框中所选项目的值boolean isEditable()检查组合框是否可编辑void removeAllItems()删除组合框中所
4、有项目void removeItem(Object anObject)删除组合框中指定项目void setEditable(boolean aFlag)设置组合框是否可编辑void setMaximumRowCount(int count)设置组合框显示的最多行数16.2 复选框 JCheckBox复选框是具有开关或真假状态的按钮,用户可以在多个复选框中选中一个或者多个。JCheckBox 类提供复选框的支持。单击复选框可将其状态从“开”更改为“关” ,或从“关”更改为“开” 。复选框事件可以是 ActionEvent 事件和ItemEvent 事 件 。 JCheckBox 类 可 实 现
5、ItemListener 监 听 器 接 口 的itemStateChanged()方法来处理事件,用 addItemListener()方法注册。方法名方法名方法功能方法功能JCheckBox()创建无文本无图像的初始未选复选框JCheckBox(Icon icon)创建有图像无文本的初始未选复选框JCheckBox(Icon icon, boolean selected)创建带图像和选择状态但无文本的复选框JCheckBox(String text)创建带文本的初始未选复选框JCheckBox(String text, boolean selected)创建具有指定文本和状态的复选框JCh
6、eckBox(String text, Icon icon)创建具有指定文本和图标图像的初始未选复选框按钮JCheckBox(String text, Icon icon, boolean selected)创建具有指定文本、图标图像、选择状态的复选框按钮String getLabel()获得复选框标签boolean getState()确定复选框的状态void setLabel(Stringlabel)将复选框的标签设置为字符串参数void setState(boolean state)将复选框状态设置为指定状态16.3 单选按钮 JRadioButton单选按钮 (JRadioButton
7、) 可以让用户进行选择和取消选择, 与复选框不同,每次只能选择一组单选按钮中的一个。JRadioButton 类本身不具有同一时间内只有一个单选按钮对象被选中的性质,也就是说 JRadioButton 类的每个对象都是独立,不因其他对象状态的改变而改变。因此,必须使用 ButtonGroup 类将所需的 JRadioButton 类对象构成一组,使得同一时间内只有一个单选按钮对象被选中。只要通过 ButtonGroup 类对象调用 add() 方法,将所有 JRadioButton类对象添加到 ButtonGroup 类对象中即可实现多选一。 ButtonGroup 类只是一个逻辑上的容器,它
8、并不在 GUI 中表现出来。单选按钮的选择事件是 ActionEvent类事件。方法名方法名方法功能方法功能JRadioButton()使用空字符串标签创建一个单选按钮 (没有图像、 未选定)JRadioButton(Icon icon)使用图标创建一个单选按钮(没有文字、未选定)JRadioButton(Icon icon, boolean selected)使用图标创建一个指定状态的单选按钮(没有文字)JRadioButton(String text)使用字符串创建一个单选按钮(未选定)JRadioButton(String text, boolean selected)使用字符串创建一个
9、单选按钮JRadioButton(String text, Icon icon)使用字符串和图标创建一个单选按钮(未选定)JRadioButton(String text, Icon icon, boolean selected)使用字符串创建一个单选按钮16.4 列表框 JList列表框(JList)是允许用户从一个列表中选择一项或多项的组件,用其显示一个数组或集合中的数据是很容易的。列表框使用户易于操作大量的选项。列表框的所有项目都是可见的,如果选项很多,超出了列表框可见区的范围,则列表框的旁边会有一个滚动条。列表框事件可以是 ListSelectionEvent 事件和ItemEvent
10、 事件。方法名方法名方法功能方法功能JList()构造一个空的滚动列表JList(Object listData)通过一个指定对象数组构造一个列表JList(ListModel dataModel)通过列表元素构造一个列表JList(Vector listData)通过一个向量构造一个列表,是默认的选择方式int getSelectedIndex()获取列表中选中项的索引int getSelectedIndexes()获取列表中选中的索引数组Object getSelectedValue()获取列表中选择的值Object getSelectedValues()获取列表中选择的多个值void s
11、etSelectionMode(int selectionMode)设置选择模式void setVisibleRowCount(int visibleRowCount)设置不带滚动条时显示的行数16.5 选择事件选择事件(ItemEvent) 在 Java GUI 中,当进行选择性的操作,如单击复选框或列表项时, 或者当一个选择框或一个可选菜单的项被选择或取消时生成选项事件。 选中其中一项或取消其中一项都会触发相应的选项事件。触发选项事件的组件比较多,如 JComboBox、JCheckBox、JRadioButton 组件。当用户在下拉列表、复选框和单选按钮中,选择一项或取消一项,都会触发所
12、谓的选项事件ItemEvent。 当用户单击某个 JRadioButton 类对象时, 可以产生一个 ActionEven和一个或者两个 ItemEvent(一个来自被选中的对象,另一个来自之前被选中现在未选中的对象) 。也就是说 JRadioButton 类可以同时响应 ItemEvent 和ActionEvent。大多数的情况下,只需要处理被用户单击选中的对象,所以使用ActionEvent 来处理 JRadioButton 类对象的事件。当用户单击某个 JCheckBox类对象时,也可以产生一个 ItemEvent 和一个 ActionEvent 事件。大多数的情况下,需要判断 JChe
13、ckBox 类对象是否被选中,所以经常使用 ItemEvent 来处理JCheckBox 类的事件。 ItemEvent 类的处理过程: 当用户改变一个组件的状态时,会产生一个或多个 ItemEven 类事件。处理 ItemEvent 类事件的步骤如下: 使用 “import java.awt.event.*;” 语句导入 java.awt.event 包中的所有类; 给程序的主类添加 ItemListener 接口; 将需要监听的组件注册,其格式为:对象名.addItemListener (this); 在 itemStateChanged()方法中编写具体处理该事件的方法,其格式为:pub
14、lic void itemStateChanged(ItemEvent e) 在 itemStateChanged()方法中,经常使用下面 3 种方法来判断对象当前的状态: getItem()方法:返回因为事件的产生而改变状态的对象,其返回类型为Object。通过 if 语句将 getItem()依次与所有能改变状态的对象进行比较,就可以确定用户到底是哪一个对象因为事件的产生而改变了状态。 getItemSelectable()方法:返回产生事件的对象,其返回类型为 Object。通过 if语句将 getItemSelectable()依次与所有能产生事件的对象进行比较, 就可以确定用户单击的
15、是哪一个对象。getItemSelectable()方法的作用与 getSource()方法的作用完全一样。 getStateChange()方法:返回产生事件对象的当前状态,其返回值有两个,ItemEventSELECTED 和 ItemEvent.DESELECTED。 ItemEvent.SELECTED 表示对象当前为选中,ItemEvent.DESELECTED 表示对象当前未选中。任务实施1实现思路界面中的字体颜色单选项和字形复选框分别通过 JRadioButton 和JCheckBox 类进行创建并实现,字号选择通过 JList 类实现,字体选择通过JComboBox 类实现。布
16、局通过盒式布局嵌套实现,两个水平的盒子放在一个垂直的盒子里。上面水平的盒子里放 JComboBox、JList、JCheckBox、JRadioButton 对象,下面水平盒子里放文本区 JTextArea 对象和按钮对象。同时实现 ItemListener 和 ActionListener 接口,处理按钮点击和选择控件的事件。定义类 FontSet 继承 JFrame 实现 ItemListener, ActionListener 接口通过 JComboBox、JCheckBox、JradioButton 等对象实现 GUI 界面设计为组件添加监听器为 ItemListener 和 Acti
17、onListener 接口添加事件处理代码编写 main 方法测试程序2.程序代码public FontSet()/ 构造方法实现窗口显示 public class FontSet extends JFrame implements ItemListener,ActionListener/类及变量定义JRadioButton jrbRed = new JRadioButton(红色,true);JRadioButton jrbGreen = new JRadioButton(绿色);JRadioButton jrbBlue = new JRadioButton(蓝色);private Butt
18、onGroup bg = new ButtonGroup();JCheckBox jcb1 = new JCheckBox(加粗);JCheckBox jcb2 = new JCheckBox(倾斜);JComboBox listFont;JList listSize;JTextArea taDemo;JButton btnExit,btnEdit;/ 事件处理代码public void actionPerformed(ActionEvent e)if (e.getSource() = btnExit) dispose();else if (e.getSource() = btnEdit)in
19、t style = Font.PLAIN;if(jcb1.isSelected()style |= Font.BOLD;if(jcb2.isSelected()style |= Font.ITALIC;if(jrbRed.isSelected()taDemo.setForeground(Color.RED);if(jrbGreen.isSelected()taDemo.setForeground(Color.GREEN);if(jrbBlue.isSelected()taDemo.setForeground(Color.BLUE);String strFont = (String)listFo
20、nt.getSelectedItem();Font ft = newFont(strFont,style,listSize.getSelectedIndex()+16);字体设置窗口程序设计taDemo.setFont(ft);任务拓展GraphicsEnvironment 类描述了 Java 应用程序在特定平台上可用的GraphicsDevice 对象和 Font 对象的集合。此 GraphicsEnvironment 中的资源可以是本地资源,也可以位于远程机器上。GraphicsDevice 对象可以是屏幕、打 印 机 或图像缓冲 区,并且 都是 Graphics2D 绘图方 法的目标。
21、每个GraphicsDevice 都有许多与之相关的 GraphicsConfiguration 对象。这些对象指定了使用 GraphicsDevice 所需的不同配置。下面是 GraphicsEnvironment 类的几个有用的方法:abstractFontgetAllFonts() 返 回 一 个 数 组 , 它 包 含 此GraphicsEnvironment 中所有可用字体的像素级实例。Abstract String getAvailableFontFamilyNames()返回一个包含此GraphicsEnvironment 中所有字体系列名称的数组,它针对默认语言环境进行了本地化
22、,由 Locale.getDefault() 返回。Point getCenterPoint()返回 Windows 应居中的点。Rectangle getMaximumWindowBounds() 返回居中 Windows 的最大边界。Font 对象代表字体,JTextArea 的 setFont 方法可以设置文本区域的字体。任务实训1.实训目的 掌握 ItemListener 接口的使用; 掌握复选框的使用; 掌握单选按钮的使用; 掌握组合框的使用。2.实训内容综合运用 Java 选择控件,设计一个简单的字体设置程序,可以进行字体、字体设置窗口程序设计字形、字号和字体颜色的设置学习任务 0
23、21.任务描述本次任务将设计一个带有菜单的图形用户界面程序,使用级联菜单控制文字的字体和颜色。2.运行结果图 4-14 菜单窗口界面知识准备真正的 GUI 应用程序缺少不了菜单,它可以给用户提供简明清晰的信息,让用户从多个项目中进行选择,又可以节省界面空间。位于窗口顶部的菜单栏和其子菜单一般会包括一个应用程序的所有方法和功能,是比较重要的组件。在程序中使用普通菜单的基本过程,如图 4-15 所示,首先创建一个菜单栏(JMenuBar);其次创建若干菜单项(JMenu),并把它们添加到(JMenuBar)中;再次,创建若干个菜单子项(JMenuItem),或者创建若干个带有复选框的菜单子项(JC
24、heckboxMenuItem),并把它们分类别地添加到每个 JMenu 中;最后,通过 JFrame 类的 setJMenuBar()方法,将菜单栏 JMenuBar 添加到框架上,使之能够显示。JMenuBarJMen1JMen2JMen3JmenuItme1JMen2JmenuItme21图 4-15 JMenu/JMenuItem/JmenuBar 的关系图字体设置菜单设计JCheckboxMenuItem 类用于创建复选菜单项。当选中复选框菜单子项时,在该菜单子项左边出现一个选择标记,如果再次选中该项,则该选项左边的选择标记就会消失。JRadioButtonMenuItem 类用于创
25、建带有单选菜单项,属于一组菜单项中的一项,该组中只能选择一个项,被选择的项显示其选择状态,选择此项的同时,其他任何以前被选择的项都切换到未选择的状态。16.6 JMenuBar 菜单栏JMenuBar 是放置菜单的菜单条,可过 new JmenuBar()构造一个菜单条对象。JMenuBar 构造方法及常用方法如下:方法名方法名方法功能方法功能JMenuBar ()构造新菜单栏 JMenuBarJMenu getMenu(int index)返回菜单栏中指定位置的菜单int getMenuCount()返回菜单栏上的菜单数void paintBorder(Graphics g)如果 Borde
26、rPainted 属性为 true,则绘制菜单栏的边框void setBorderPainted(boolean b)设置是否应该绘制边框void setHelpMenu(JMenu menu)设置用户选择菜单栏中的“帮助”选项时显示的帮助菜单void setMargin(Insets m)设置菜单栏的边框与其菜单之间的空白void setSelected(Component sel)设置当前选择的组件,更改选择模型以下代码给出了如何创建 myJMenuBar,并添加到 JDialog 中:JMenuBar myJMenuBar=new JMenuBar();JDialog myJDialog
27、=new JDialog();myDialog.setJMenuBar(myJMenuBar);16.7 JMenu 菜单项JMenu 是菜单项对象, 用 new JMenu(“文件”)构造一个菜单条目对象。例如:JMenu menu = new JMenu(文件(F);/ 创建一个菜单对象JMenu 的构造方法及常用方法如下:方法名方法名方法功能方法功能JMenu()构造没有文本的新 JMenuJMenu(Action a)构造一个从提供的 Action 获取其属性的菜单JMenu(String s)构造一个新 JMenu,用提供的字符串作为其文本字体设置菜单设计JMenu(String s
28、, boolean b)构造一个新 JMenu, 用提供的字符串作为其文本并指定其是否为分离式 (tear-off) 菜单void add()将组件或菜单项追加到此菜单的末尾void addMenuListener(MenuListener l)添加菜单事件的侦听器void addSeparator()将新分隔符追加到菜单的末尾void doClick(int pressTime)以编程方式执行“单击”JMenuItem getItem(int pos)返回指定位置的 JMenuItemvoid setMenuLocation(int x, int y)设置弹出组件的位置int getItem
29、Count()返回菜单上的项数,包括分隔符JMenuItem insert(Action a, int pos)在给定位置插入连接到指定 Action 对象的新菜单项JMenuItem insert(JMenuItem mi, int pos)在给定位置插入指定的 JMenuitemvoid insert(String s, int pos)在给定的位置插入一个具有指定文本的新菜单项void insertSeparator(int index)在指定的位置插入分隔符boolean isSelected()如果菜单是当前选择的 (即突出显示的) 菜单, 则返回 truevoid remove()
30、从此菜单移除组件或菜单项void removeAll()从此菜单移除所有菜单项void setDelay(int d)设置菜单的 PopupMenu 向上或向下弹出前建议的延迟void setMenuLocation(int x, int y)设置弹出组件的位置16.8 JMenu 菜单项JMenuItem 是菜单项子项类, 通过 new JmenuItem(“菜单条目 1”)方法构造一个菜单项子项对象。其构造方法及常用方法如下:方法名方法名方法功能方法功能JMenuItem()创建不带有设置文本或图标的 JMenuItemJMenuItem(Action a)创建一个从指定的 Action
31、获取其属性的菜单项JMenuItem(Icon icon)创建带有指定图标的 JMenuItemJMenuItem(String text)创建带有指定文本的 JMenuItemJMenuItem(String text, Icon icon)创建带有指定文本和图标的 JMenuItemJMenuItem(String text, int mnemonic)创建带有指定文本和键盘助记符的 JMenuItemboolean isArmed()返回菜单项是否被“调出”void setArmed(boolean b)将菜单项标识为“调出”void setEnabled(boolean b)启用或禁用
32、菜单项void setAccelerator( KeyStroke keystroke)设置菜单项的快捷键void setMnemonic(char mnemonic)设置菜单项的热键KeyStroke getAccelerator( )返回菜单项的快捷键示例代码如下:JMenuItem item = new JMenuItem(新建(N), KeyEvent.VK_N);/ 创建带有指定文本/和键盘助记符的 JMenuItem。item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK);/ 设
33、置修改键,它能直接调用菜/单项的操作侦听器而不必显示菜单的层次结构。menu.add(item);/ 将 JMenuItem 项添加到菜单栏中去16.9 JCheckBoxMenuItemJCheckBoxMenuItem 构造方法及常用方法:方法名方法名方法功能方法功能JCheckBoxMenuItem()创建一个不带有设置文本或图标的复选菜单项JCheckBoxMenuItem(String text)创建一个有指定文本的复选菜单项JCheckBoxMenuItem(Icon icon)创建一个带有指定图标的复选菜单项JChcckBoxMenuItem(String text, Icon
34、icon)创建一个有文本和图标的复选菜单项JCheckBoxMenulte(String text, Boolean b)创建一个有文本和设置选择状态复选菜单项JChcckBoxMenuItem(String text, Icon icon,Boolean b)创建一个有文本、图标和设置选择状态的复选菜单项Boolean getState()返回菜单项的选定状态void setState(Boolean b)设置该项的选定状态例如:JCheckBoxMenuItem cbMenuItem = new JCheckBoxMenuItem(自动换行);16.10 JRadioButtonMenuI
35、temJRadioButtonMenuItem 构造方法及常用方法:方法名方法名方法功能方法功能JRadioButtonMenuItem()创建一个新的单选菜单项JRadioButtonMenuItem(String text)创建一个有指定文本的单选菜单项JRadioButtonMenuItem(Icon icon)创建一个带有指定图标的单选菜单项JRadioButtonMenuItem(String text, Icon icon)创建一个有文本和图标的单选菜单项JRadioButtonMenulte(String text, Boolean selected)创建一个有文本和设置选择状态
36、的单选菜单项JRadioButtonMenuItem(Icon icon, Boolean selected)创建一个有图标和设置选择状态的单选菜单项JRadioButtonMenuItem(String text, Icon icon, Boolean selected)创建一个有文本、图标和设置选择状态的单选菜单项例如:例如:JRadioButtonMenuItem mrButton = new JRadioButtonMenuItem( 男,gender);JRadioButtonMenuItem missButton = new JRadioButtonMenuItem( 女,!gen
37、der);任务实施1实现思路任务四中已经讲述了如何设置字体,本任务中通过菜单来选择字体。通过JMenuBar 实 现 菜 单 栏 , JMenu 实 现 菜 单 , JMenuItem 实 现 菜 单 项 ,JCheckBoxMenuItem 实现带复选按钮的菜单项, addSeparator 方法添加水平分割线,setMnemonic 方法添加菜单的快捷键。(1)定 义 一 个 MenuTest 菜 单 类 , 继 承 自 窗 体 类 JFrame , 并 实 现ActionListener(2)定义 MenuTest 构造方法,首先通过 JMenuBar 建立一个菜单栏,然后使用JMenu
38、 建立菜单,每个菜单再通过 JMenuItem 建立菜单项(3)定义 actionPerformed 单击菜单项处理方法做相应处理2. 程序代码/ 类声明及变量定义public class MenuTest extends JFrame implements ActionListenerJMenuBar jmb = new JMenuBar();JMenu fontMenu = new JMenu(字体(F);字体设置菜单设计JMenu helpMenu = new JMenu(帮助);JMenu styleMenu = new JMenu(样式); public MenuTest()/构造方
39、法实现菜单栏setJMenuBar(jmb);jmb.add(fontMenu);jmb.add(helpMenu);fontMenu.setMnemonic(KeyEvent.VK_F);boldMenu.setMnemonic(KeyEvent.VK_B);fontMenu.add(styleMenu);fontMenu.add(colorMenu);fontMenu.addSeparator();fontMenu.add(exitMenu);fontMenu.add(aboutMenu);styleMenu.add(boldMenu);styleMenu.add(italicMenu);
40、colorMenu.add(redMenu);colorMenu.add(greenMenu);colorMenu.add(blueMenu);exitMenu.addActionListener(this);aboutMenu.addActionListener(this);boldMenu.addActionListener(this);italicMenu.addActionListener(this);redMenu.addActionListener(this);greenMenu.addActionListener(this);blueMenu.addActionListener(
41、this);getContentPane().add(txtDemo); /菜单选择事件处理public void actionPerformed(ActionEvent e)String cmd = e.getActionCommand();if(cmd.equals(红色)txtDemo.setForeground(Color.RED);else if(cmd.equals(绿色)txtDemo.setForeground(Color.GREEN);else if(cmd.equals(蓝色)txtDemo.setForeground(Color.BLUE);else if(cmd.equ
42、als(粗体)bold = boldMenu.isSelected() ? Font.BOLD : Font.PLAIN;else if(cmd.equals(斜体)italic = italicMenu.isSelected() ? Font.ITALIC : Font.PLAIN;else if(cmd.equals(退出)System.exit(0);txtDemo.setFont(new Font(Serif,bold + italic,24);任务拓展弹出式菜单(JPopupMenu), 也称快捷菜单, 它可以附加在任何组件上使用。当在附有快捷菜单的组件上单击鼠标右键时,即显示出快捷
43、菜单。弹出式菜单(JPopupMenu) 是一种特别的 JMenu,并不固定在窗口的任何一个位置,而是由鼠标和系统判断决定 JPopupMenu 出现的位置。弹出式菜单的结构与下拉式菜单中的菜单项 JMenu 类似:一个弹出式菜单包含有若干个菜单子项JMenuItem。只是,这些菜单子项不是装配到 JMenu 中,而是装配到JPopupMenu 中。方法 show( Component origin,int,int y)用于在相对于组件的 x、y 位置显示弹出式菜单。弹出式菜单一般在鼠标事件中弹出,例如:public void mouseClicked(MouseEvent mec) /处理鼠
44、标单击事件if (mec.getModifiers( )=mec.BUTTON3_MASK) /判断单击右键popupMenu.show(this,mec.getX( ),mec.getY(); /在鼠标单击处显示菜单菜单与其他组件有一个重要的不同:不能将菜单添加到一般的容器中,而且不能使用布局管理器对它们进行布局。 弹出式菜单因为可以以浮动窗口形式出现,因此也不需要布局。不论是弹出式菜单还是下拉式菜单,仅在其某个菜单子项(JMenuItem 类或 JCheckboxMenuItem 类)被选中时才会产生事件,当一个JMenuItem 类菜单子项被选中时,产生 ActionEvent 事件对象
45、;当一个JCheckboxMenuItem 类菜单子项被选中或被取消选中时,产生 ItemEvent 事件对 象 。 ActionEvent 事 件 、 ItemEvent 事 件 分 别 由 ActionListener 接 口 和ItemListener 接口来监听处理。当菜单中既有 JMenuItem 类的菜单子项,又有JCheckboxMenuItem 类的菜单子项时,必须同时实现 ActionListener 接口和ItemListener 接口,才能处理菜单上的事件。字体设置菜单设计JPopupMenu 构造方法及常用方法:方法名方法名方法功能方法功能JPopupMenu()构造一
46、个不带“调用者”的 JPopupMenuJPopupMenu(String s)构造一个具有指定标题的 JPopupMenuboolean isVisible( )如果弹出菜单可见(当前显示的) ,则返回 trueString getLabel( )返回弹出菜单的标签void insert(Component component, int_index)将指定组件插入到菜单的给定位置void pack( )布置容器,让它使用显示其内容所需的最小空间void setLocation(int x, int y)使用 X、Y 坐标设置弹出菜单的左上角的位置void setPopupSize(Dimen
47、sion d)使用 Dimension 对象设置弹出窗口的大小void setPopupSize(int width, int height)将弹出窗口的大小设置为指定的宽度和高度void setVisible(boolean b)设置弹出菜单的可见性void show(Component invoker, int x, int y)在组件调用者的坐标空间中的位置 X、Y 显示弹出菜单任务实训1.实训目的 掌握下拉式菜单的设计及菜单事件的处理; 掌握弹出式菜单的设计及菜单事件的处理; 掌握 MouseEvent 事件的处理; 了解 KeyEvent 事件、TextEvent 事件、WindowEvent 窗口事件的处理。2.实训内容设计一个带有菜单的图形用户界面,跟踪鼠标的移动,在文本区域实时显示鼠标动作和坐标位置。字体设置菜单设计