Swing组件(精品).ppt

上传人:hyn****60 文档编号:71800467 上传时间:2023-02-06 格式:PPT 页数:68 大小:753KB
返回 下载 相关 举报
Swing组件(精品).ppt_第1页
第1页 / 共68页
Swing组件(精品).ppt_第2页
第2页 / 共68页
点击查看更多>>
资源描述

《Swing组件(精品).ppt》由会员分享,可在线阅读,更多相关《Swing组件(精品).ppt(68页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第六章第六章 SwingSwing用户界面组件用户界面组件6.1 6.1 布局管理器布局管理器一一.组件设置过程组件设置过程定义组件定义组件 例:例:JButtonJButton redButtonredButton=new=new JButton(“redJButton(“red”);”);添加到面板中添加到面板中 例:例:add(redButtonadd(redButton););为组件设置监听器为组件设置监听器 例:例:redButton.addActionListener(listenerredButton.addActionListener(listener););组件多时怎么办?组

2、件多时怎么办?二二.布局管理器布局管理器JavaJava采用布局管理器对放置在容器内的组件采用布局管理器对放置在容器内的组件实行动态管理。实行动态管理。JavaJava支持四种布局支持四种布局FlowLayoutFlowLayout 流布局流布局BorderLayoutBorderLayout 边界布局边界布局GridLayoutGridLayout 网格布局网格布局CardLayoutCardLayout 卡片布局卡片布局1.1.FlowLayoutFlowLayout组件按照加入的先后顺序从左向右排列,一组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左向右排列,行排满之

3、后就转到下一行继续从左向右排列,每一行中的组件都居中排列。每一行中的组件都居中排列。FlowLayoutFlowLayout是是PanelPanel和和AppletApplet型容器的默认型容器的默认使用布局。使用布局。自左向右、居中排列构造新布局构造新布局FlowLayoutFlowLayout()()FlowLayout(intFlowLayout(int align)align)根据指定的对齐方式来构造一个新根据指定的对齐方式来构造一个新FlowLayoutFlowLayout参数:参数:FlowLayout.LEFTFlowLayout.LEFT左对齐左对齐 FlowLayout.RI

4、GHTFlowLayout.RIGHT 右对齐右对齐 FlowLayout.CENTERFlowLayout.CENTER 居中居中FlowLayout(intFlowLayout(int align align,intint hgaphgap ,vgapvgap)根据指定对齐方式来构造新的根据指定对齐方式来构造新的FlowLayoutFlowLayout align:align:对齐方式对齐方式 hgaphgap:水平距离水平距离 vgapvgap:垂直距离垂直距离设置新布局设置新布局setLayout(LayoutManagersetLayout(LayoutManager m)m)为容器

5、设置布局管理器为容器设置布局管理器 例:例:FlowLayoutFlowLayout m=new m=new FlowLayoutFlowLayout();();setLayout(msetLayout(m););或:或:setLayout(newsetLayout(new FlowLayoutFlowLayout();();FlowLayoutFlowLayout布局管理器并不强行设定组件的大小,布局管理器并不强行设定组件的大小,而是允许组件拥有它们自己所希望的尺寸。而是允许组件拥有它们自己所希望的尺寸。FlowLayoutFlowLayout示例示例1.import java.awt.*;

6、2.import javax.swing.*;3.class MyFlow4.5.private JFrame f;6.private Button button1,button2,button3;7.public static void main(String args)8.MyFlow mflow=new MyFlow();9.mflow.go();10.11.public void go()12.f=new JFrame(Flow Layout);13.f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);14.f.setLayout(n

7、ew FlowLayout();15.button1=new Button(Ok);16.button2=new Button(Open);17.button3=new Button(Close);18.f.add(button1);19.f.add(button2);20.f.add(button3);21.f.setSize(300,200);22.f.setVisible(true);23.24.2.2.BorderLayoutBorderLayout它把容器的空间分为它把容器的空间分为:东、西、南、北、中。东、西、南、北、中。在在BorderLayoutBorderLayout类中用类

8、中用EASTEAST、WESTWEST、SOUTHSOUTH、NORTHNORTH、CENTERCENTER常量来表示上常量来表示上述划分,以决定组件的安放位置。述划分,以决定组件的安放位置。BorderLayoutBorderLayout是是DialogDialog类和类和FrameFrame类的默认类的默认布局管理器。布局管理器。BorderLayout.NORTH BorderLayout.SOURTHBorderLayout.CENTERBorderLayout.WESTBorderLayout.EASTBorderLayoutBorderLayout布局管理器有两种构造方法:布局管理

9、器有两种构造方法:lBorderLayoutBorderLayout()()构造一个各部分间距为构造一个各部分间距为0 0的的BorderLayoutBorderLayout实例。实例。lBorderLayout(intBorderLayout(int,intint)构造一个各部分具有构造一个各部分具有指定间距的指定间距的BorderLayoutBorderLayout实例。实例。在在BorderLayoutBorderLayout 布局管理器的管理下,组件布局管理器的管理下,组件必须通过必须通过add()add()方法加入到容器的五个命名区方法加入到容器的五个命名区域之一。域之一。在容器的每

10、个区域,只能加入一个组件。可在容器的每个区域,只能加入一个组件。可以使用内部容器在以使用内部容器在BorderLayoutBorderLayout的一个区域的一个区域内间接放入多个组件。内间接放入多个组件。例:下面为将两个按钮放在容器上部和下例:下面为将两个按钮放在容器上部和下部的例子:部的例子:JButtonJButton button1,button2;button1,button2;setLayout(newsetLayout(new BorderLayoutBorderLayout();();button1=new button1=new JButtonJButton(“(“北北”);

11、);button2=new button2=new JButtonJButton(“(“南南”););add(button1,BorderLayout.NORTH);add(button1,BorderLayout.NORTH);add(button2,BorderLayout.SOUTH);add(button2,BorderLayout.SOUTH);符号表示符号表示 BorderLayoutBorderLayout常量被定义为字符串常量被定义为字符串 例例:BorderLayout.SOUTHBorderLayout.SOUTH被定义为字符被定义为字符串:串:SouthSouth。上例应

12、用时可写为:。上例应用时可写为:add(button1,add(button1,“North”);North”);add(button2,add(button2,“South”);South”);BorderLayoutBorderLayout示例示例1.import java.awt.*;2.import javax.swing.*;1.class MyBorder2.3.private JFrame f;4.private Button be,bw,bn,bs,bc;5.public static void main(String args)6.7.MyBorder myborder=ne

13、w MyBorder();8.myborder.go();9.10.void go()11.12.f=new JFrame(Border Layout);13.f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);14.be=new Button(East);15.bs=new Button(South);16.bw=new Button(West);17.bn=new Button(North);18.bc=new Button(Center);19.f.setLayout(new BorderLayout(20,50);20.f.add(b

14、e,BorderLayout.EAST);/f.add(be,East);21.f.add(bw,BorderLayout.WEST);/f.add(bw,West);22.f.add(bs,BorderLayout.SOUTH);/f.add(bs,South);23.f.add(bn,BorderLayout.NORTH);/f.add(bn,North);24.f.add(bc,BorderLayout.CENTER);/f.add(bc,Center);25.JTextField jtext=new JTextField(20);26.f.add(jtext);27.f.setSize

15、(300,300);28.f.setVisible(true);29.30.3.3.GridLayoutGridLayoutGridLayoutGridLayout是一种网格式的布局管理器,它是一种网格式的布局管理器,它将容器空间划分成若干行乘若干列的网格,将容器空间划分成若干行乘若干列的网格,组件依次放入其中,每个组件占据一格。组件依次放入其中,每个组件占据一格。可用方法可用方法setLayoutsetLayout来设置网格布局。来设置网格布局。GridLayoutGridLayout三种构造方法:三种构造方法:lpublic public GridLayoutGridLayout()()l

16、public public GridLayout(intGridLayout(int rows,rows,intint cols)cols)lpublic public GridLayout(intGridLayout(int rows,rows,intint cols,cols,intint hgaphgap,intint vgapvgap)第一种不带参数的构造方法创建一个只有一行的第一种不带参数的构造方法创建一个只有一行的网格,网格的列数根据实际需要而定。网格,网格的列数根据实际需要而定。参数:参数:rowsrows和和colscols分别指定网格的行数和列数,分别指定网格的行数和列数,h

17、gaphgap和和vgapvgap分别表示网格间的水平间距和垂直间分别表示网格间的水平间距和垂直间距。距。nGridLayoutGridLayout设置方法:设置方法:setLayout(newsetLayout(new GridLayoutGridLayout(行数、列数行数、列数)例:例:setLayout(newsetLayout(new GridLayout(3,4);GridLayout(3,4);rowsrows和和colscols中的一个值可以为中的一个值可以为0 0,但是两个值不能都是,但是两个值不能都是0 0。如果如果rowsrows为为0 0,那么网格的行数将根据实际需要而

18、定;,那么网格的行数将根据实际需要而定;如果如果colscols为为0 0,那么网格的列数将根据实际需要而定。,那么网格的列数将根据实际需要而定。GridLayoutGridLayout示例示例1.import java.awt.*;2.import javax.swing.*;3.class MyGrid4.private JFrame f;5.private Button b1,b2,b3,b4,b5,b6;6.public static void main(String args)7.MyGrid mygrid=new MyGrid();8.mygrid.go();9.10.void g

19、o()11.f=new JFrame(Grid Layout);12.f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);13.f.setLayout(new GridLayout(0,2,10,20);14.f.setSize(300,200);15.b1=new Button(b1);b2=new Button(b2);16.b3=new Button(b3);b4=new Button(b4);17.b5=new Button(b5);b6=new Button(b6);18.19.f.add(b1);f.add(b2);f.add(b

20、3);f.add(b4);f.add(b5);f.add(b6);20.JTextField jtext1=new JTextField(30);f.add(jtext1);21.JTextField jtext2=new JTextField(30);f.add(jtext2);22.f.setVisible(true);23.24.4.4.CardLayoutCardLayout CardLayoutCardLayout的容器可以容纳多个组件,的容器可以容纳多个组件,但是实际上同一时刻容器只能从这些组但是实际上同一时刻容器只能从这些组件中选出一个来显示,就象一叠件中选出一个来显示,就象一叠

21、“扑克扑克牌牌”每次只能显示最上面的一张。每次只能显示最上面的一张。示例(示例(CardTest.JavaCardTest.Java):为):为FrameFrame类的实例类的实例f f指定了一个指定了一个 CardLayoutCardLayout类型的布局管理器,类型的布局管理器,然后向其中加入了五张卡片,每张卡片都是然后向其中加入了五张卡片,每张卡片都是PanelPanel类的一个实例,并且具有不同的背景色。类的一个实例,并且具有不同的背景色。每当在程序窗口单击鼠标时,下一张卡片就每当在程序窗口单击鼠标时,下一张卡片就会显示出来。会显示出来。其他布局管理器其他布局管理器除了前面介绍的除了前

22、面介绍的FlowLayoutFlowLayout,BorderLayoutBorderLayout,GridLayoutGridLayout和和CardLayoutCardLayout四种布局管理器四种布局管理器之外,之外,java.awtjava.awt还提供了还提供了GridBagLayoutGridBagLayout布局布局管理器。管理器。GridBagLayoutGridBagLayout布局管理器以网格为基础,允布局管理器以网格为基础,允许组件使用最适当的大小,既可以占多个网许组件使用最适当的大小,既可以占多个网格,也可以只占一个网格的一部分。格,也可以只占一个网格的一部分。三三.容

23、器的布局容器的布局1.1.框架框架框架是带标题框的窗口,窗口的大小可以改框架是带标题框的窗口,窗口的大小可以改变。变。默认情况下,框架使用默认情况下,框架使用BorderLayoutBorderLayout布局管布局管理器,可以使用理器,可以使用setLayoutsetLayout()()对此进行修改。对此进行修改。2.2.面板面板面板是一个容器,并且是一个纯粹的容器,面板是一个容器,并且是一个纯粹的容器,它不能作为独立的窗口使用。它不能作为独立的窗口使用。默认情况下,面板使用默认情况下,面板使用FlowLayoutFlowLayout布局管理布局管理器,同样可以使用器,同样可以使用setLa

24、youtsetLayout()()方法对此进行方法对此进行修改。修改。面板可以像按钮那样被创建并加入到其他容面板可以像按钮那样被创建并加入到其他容器中。器中。当面板被加入某个容器时,可以对它执行以当面板被加入某个容器时,可以对它执行以下两项重要操作:下两项重要操作:l为面板指定一个布局管理器,使得在整个显示区为面板指定一个布局管理器,使得在整个显示区域中,面板所在的部分具有特殊的布局。域中,面板所在的部分具有特殊的布局。l向面板中加入组件。向面板中加入组件。n面板是通过构造方法面板是通过构造方法panel()panel()创建的。创建的。n面板在创建之后,必须通过面板在创建之后,必须通过add

25、()add()方法加入到方法加入到其他容器中才有意义。其他容器中才有意义。n综合示例综合示例:LayoutTest.javaLayoutTest.java6.26.2常用组件常用组件1.1.文本输入文本输入 文本域、文本区、标签文本域、文本区、标签2.2.选择组件选择组件 复选框、单选按钮复选框、单选按钮3.3.菜单菜单 弹出菜单、下拉菜单弹出菜单、下拉菜单4.4.对话框对话框 选择对话框、文件对话框选择对话框、文件对话框6.2.16.2.1文本输入文本输入用于文本输入的组件:用于文本输入的组件:文本框:文本框:用于进行单行文本输入输出,用于进行单行文本输入输出,其对应的类为其对应的类为JTe

26、xtFieldJTextField。文本区文本区:可以接受多行文本输入,其对应可以接受多行文本输入,其对应 的类为的类为JTextAreaJTextArea。API:javax.swing.text.JTextComponentAPI:javax.swing.text.JTextComponentvoid void setText(StringsetText(String t)t)string string getTextgetText()()void void setEditable(booleansetEditable(boolean b)b)1.1.文本框文本框构造方法构造方法JText

27、FieldJTextField()-()-文本框的长度为一个字符文本框的长度为一个字符JTextField(intJTextField(int x)-x)-文本框的长度为文本框的长度为X X个字个字符符JTextField(StringJTextField(String s)-s)-文本框的初始字符文本框的初始字符串为串为S SJTextField(StringJTextField(String s s,intint x)-x)-文本框的初始文本框的初始字符串为字符串为S S,长度为,长度为X X个字符个字符添加文本框添加文本框 把一个文本框添加到一个窗口的通常办法把一个文本框添加到一个窗口的

28、通常办法是把它添加到一个面板或其它容器中。是把它添加到一个面板或其它容器中。代码:代码:JPanelJPanel panel=new panel=new JPanelJPanel();();JTextFieldJTextField textFieldtextField=new=new JTextFieldJTextField(“(“文本框输入文本框输入”20;20;panel.add(textFieldpanel.add(textField););改变文本框的大小改变文本框的大小列不是一个精确的测量单位,一列就是列不是一个精确的测量单位,一列就是一个字符在当前使用的字体下的宽度。一个字符在当前

29、使用的字体下的宽度。可用可用setColumn(intsetColumn(int x)x)方法改变列的大小方法改变列的大小 textField.setColumn(10);textField.setColumn(10);调用调用setColumnsetColumn()()方法后需要调用所在容方法后需要调用所在容器的器的validatevalidate方法,重新计算组件大小方法,重新计算组件大小 panel.validatepanel.validate();();安装文档监听器安装文档监听器textField.textField.getDocumentgetDocument().().addDo

30、cumentListener(listeneraddDocumentListener(listener)文档接口文档接口DocumentListenerDocumentListener中含有三个方中含有三个方法:法:void void insertUpdate(DocumentEventinsertUpdate(DocumentEvent e)e)void void removeUpdate(DocumentEventremoveUpdate(DocumentEvent e)e)void void changeUpdate(DocumentEventchangeUpdate(DocumentE

31、vent e)e)当文本发生改变后,上面三个方法中的当文本发生改变后,上面三个方法中的一个会被调用。一个会被调用。例:一个文本框的例子例:一个文本框的例子TextTest.javaTextTest.java2.2.文本区文本区构造方法构造方法JTextArea(intJTextArea(int rows,introws,int cols)cols)JTextArea(StringJTextArea(String text,inttext,int rows,introws,int cols)cols)改变文本区大小改变文本区大小setColumn(intsetColumn(int cols)co

32、ls)setRows(intsetRows(int rows)rows)追加文本追加文本append(String append(String newTextnewText)打开或关闭换行打开或关闭换行setLineWrap(booleansetLineWrap(boolean word)word)滚动窗格滚动窗格 若使用滚动条,必须把文本区插入到一个若使用滚动条,必须把文本区插入到一个滚动窗格中,然后再把滚动窗格插入到内滚动窗格中,然后再把滚动窗格插入到内容窗格中。代码如下:容窗格中。代码如下:textAreatextArea=new JTextArea(8,40);=new JTextAr

33、ea(8,40);JScrollPaneJScrollPane scrollPanescrollPane=new=new JScrollPanel(textAreaJScrollPanel(textArea);contentPane.add(scrollPanecontentPane.add(scrollPane,“,“Center”);Center”);例:例:TextAreaTestTextAreaTest3.3.标签和标签组标签和标签组标签是容纳文本的组件,常用来标识别标签是容纳文本的组件,常用来标识别的组件。的组件。构造方法:构造方法:JLabel(StringJLabel(Strin

34、g text)text)JLabel(IconJLabel(Icon icon)icon)JLabel(StringJLabel(String text,inttext,int align)align)JLabel(StringJLabel(String text,Icon,icon,inttext,Icon,icon,int align)align)参数说明:参数说明:text:text:标签中的文本标签中的文本Icon:Icon:标签中的图标标签中的图标align:align:SwingConstantSwingConstant.LEFT.LEFT SwingConstant.RIGHTS

35、wingConstant.RIGHT SwingConstant.CENTERSwingConstant.CENTERvoid void setText(StringsetText(String text)text)void void setIcon(IconsetIcon(Icon icon)icon)6.2.26.2.2选择组件选择组件1.1.复选框复选框构造复选框构造复选框JCheckBoxJCheckBox bold=new bold=new CheckBox(“boldCheckBox(“bold”);”);用用setSelectedsetSelected()()方法来选定一个复选框

36、以方法来选定一个复选框以及取消选定及取消选定bold.setSelected(truebold.setSelected(true)提取复选框当前状态提取复选框当前状态bold.isSelectedbold.isSelected()()添加监听器添加监听器ActionListenerActionListener listener=listener=bold.addactionListener(listenerbold.addactionListener(listener)监听器的接口方法为:监听器的接口方法为:actionPerformedactionPerformed()()例:例:Check

37、BoxTest.javaCheckBoxTest.java2.2.单选按钮单选按钮构造单选按钮构造单选按钮JRadioButtonJRadioButtonsmallButtonsmallButton=new=new JRadioButton(“small”,falseJRadioButton(“small”,false););把单选按钮加入面板中把单选按钮加入面板中Panel.add(smallButtonPanel.add(smallButton););构造按钮组构造按钮组ButtonGroupButtonGroup group=new group=new ButtonGroupButton

38、Group();();把把JRadioButtonJRadioButton类型对象添加到该按钮组类型对象添加到该按钮组group.add(smallButtongroup.add(smallButton););API:API:Javax.swing.JRadioButtonJavax.swing.JRadioButtonJRadioButton(StringJRadioButton(String lable,booleanlable,boolean state)state)JRadioButton(StringJRadioButton(String lable,Iconlable,Icon i

39、con)icon)API:API:Javax.swing.ButtonGroupJavax.swing.ButtonGroupVoid Void add(AbstractButtonadd(AbstractButton b)b)ButtonModelButtonModel getSelectiongetSelection()()例:例:RadioButtonTest.javaRadioButtonTest.java6.2.36.2.3菜单菜单 菜单栏菜单栏菜单菜单 菜单项菜单项菜单栏菜单栏菜单项菜单项菜单菜单框架框架1.1.菜单创建过程菜单创建过程创建菜单栏创建菜单栏JMenuBarJMenu

40、Bar menuBarmenuBar=new=new JMenuBarJMenuBar();();框架中添加菜单栏框架中添加菜单栏frame.setJMenuBar(menuBarframe.setJMenuBar(menuBar););创建菜单创建菜单JMenuJMenu menu=new menu=new JMenu(“FileJMenu(“File”);”);把菜单加入菜单栏中把菜单加入菜单栏中menuBar.addMenu(menumenuBar.addMenu(menu););创建菜单项创建菜单项JMenuItemJMenuItem saveItemsaveItem=new=new

41、JMenuItem(“SaveJMenuItem(“Save”);”);向菜单中添加菜单项向菜单中添加菜单项menu.add(saveItemmenu.add(saveItem););2.2.安装菜单项监听器安装菜单项监听器当用户选择一个菜单项时,一个动作事当用户选择一个菜单项时,一个动作事件就会被触发件就会被触发 ActionListenerActionListener listener=.;listener=.;pasteItem.addActionListener(listenerpasteItem.addActionListener(listener););JMenu.add(Stri

42、ngJMenu.add(String s)s)是一个很方便的方法,它是一个很方便的方法,它可以把一个菜单项添加到菜单的结尾可以把一个菜单项添加到菜单的结尾 editMenu.add(“pasteeditMenu.add(“paste”);”);add()add()返回创建的子菜单项,因此可以捕获它返回创建的子菜单项,因此可以捕获它的返回值并添加监听器的返回值并添加监听器 JMenuItemJMenuItem pItempItem=editMenu.add(“PasteeditMenu.add(“Paste”);”);pItem.addActionListener(listenerpItem.a

43、ddActionListener(listener););3.3.其它常用方法其它常用方法JMenuBarJMenuBar()()创建一个菜单栏创建一个菜单栏JMenu(StringJMenu(String label)label)创建一个菜单创建一个菜单JMenuItem(StringJMenuItem(String label)label)创建一个菜单项创建一个菜单项void void addSeparatoraddSeparator()()添加一个分隔行添加一个分隔行JMenuItemJMenuItem insert(JMenuItem,intinsert(JMenuItem,int i

44、ndex)index)把一个菜单项添加到菜单的指定位置把一个菜单项添加到菜单的指定位置void void insertSeparator(intinsertSeparator(int index)index)把一个分隔符添加到菜单的指定位置把一个分隔符添加到菜单的指定位置void void remove(JMenuItemremove(JMenuItem item)item)删除指定菜单项删除指定菜单项4.4.菜单项中的图标菜单项中的图标可以通过可以通过JMenuItem(String,IconJMenuItem(String,Icon)或者或者MenuItemMenuItem (Icon)(

45、Icon)来为菜单指定一个图标。来为菜单指定一个图标。用用JMenuItemJMenuItem类中的类中的setIconsetIcon方法来设定图标。例方法来设定图标。例如:如:JMenuItemJMenuItem cutItemcutItem=new=new JMenuItemJMenuItem(“cut”,new “cut”,new ImageIcon(“cut.gifImageIcon(“cut.gif”)”)5.5.复选框菜单项复选框菜单项创建一个复选框菜单项创建一个复选框菜单项 JCheckBoxMenuItemJCheckBoxMenuItem readonlyItemreadon

46、lyItem=new=new JCheckBoxMenuItem(“readJCheckBoxMenuItem(“read-only”);-only”);optionsMenu.add(readonlyItemoptionsMenu.add(readonlyItem););6.6.单选按钮菜单项单选按钮菜单项同常规按钮一样,先将其添入按钮组同常规按钮一样,先将其添入按钮组 ButtonGroupButtonGroup group=new group=new ButtonGroupButtonGroup();();JRadioButtonMenuItemJRadioButtonMenuItem

47、insertIteminsertItem=new =new JRadioButtonMenuItemJRadioButtonMenuItem(“insert”);(“insert”);insertItem.setSelected(trueinsertItem.setSelected(true););JRadioButtonMenuItemJRadioButtonMenuItem overtypeItemovertypeItem=new =new JRadioButtonMenuItemJRadioButtonMenuItem(“overtype”);(“overtype”);group.add

48、(insertItemgroup.add(insertItem););group.add(OvertypeItemgroup.add(OvertypeItem););optionsMenu.add(insertItemoptionsMenu.add(insertItem););optionsMenu.add(OvertypeItemoptionsMenu.add(OvertypeItem););7.7.弹出菜单弹出菜单是一种并非固定在菜单栏中,但是可随处是一种并非固定在菜单栏中,但是可随处浮动的菜单。浮动的菜单。创建弹出菜单创建弹出菜单JPopupMenuJPopupMenu popup=ne

49、w popup=new JPopupMenuJPopupMenu();();添加菜单添加菜单JMenuItemJMenuItem item=new item=new JMenuItem(“cutJMenuItem(“cut”);”);item.addActionListener(listeneritem.addActionListener(listener););popup.add(item);popup.add(item);弹出式菜单并不总显示在窗口顶部,必须弹出式菜单并不总显示在窗口顶部,必须用用showshow方法显示。方法显示。show(Component show(Component

50、 c,intc,int x,intx,int y);y);例:例:popup.show(Panel,x,y);popup.show(Panel,x,y);通常用户点击某个鼠标键时,弹出菜单就通常用户点击某个鼠标键时,弹出菜单就会出现,这就是弹出触发器,通常为鼠标会出现,这就是弹出触发器,通常为鼠标右键。右键。使用触发器步骤如下使用触发器步骤如下:安装鼠标监听器安装鼠标监听器在鼠标监听器中添加如下代码:在鼠标监听器中添加如下代码:public void public void mouseReleased(MouseEventmouseReleased(MouseEvent event)event

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com