300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Java Swing中的下拉式菜单(menu) 弹出式菜单(JPopupMenu) 选项卡窗体(JTabbedPane)

Java Swing中的下拉式菜单(menu) 弹出式菜单(JPopupMenu) 选项卡窗体(JTabbedPane)

时间:2021-05-26 15:48:46

相关推荐

Java Swing中的下拉式菜单(menu) 弹出式菜单(JPopupMenu) 选项卡窗体(JTabbedPane)

文章目录

1.. Java弹出菜单,为JTextArea添加了右键弹出式菜单2.:下拉式菜单的创建步骤:3:弹出式菜单的创建步骤:4:选项卡窗体:

菜单是GUI中最常用的组件,菜单不是Component类的子类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中.

菜单组件由菜单栏 (MenuBar)、菜单(Menu)和菜单项(MenuItem)三部分组成。 一个菜单栏由若干个菜单组成,一个菜单又由若干个菜单项组成。一般菜单栏放 Frame 窗口中,只要调用 Frame 类的 setMenuBar()方法即可。

常用的菜单有:下拉式菜单和弹出式菜单(独立显示,可出现在任意地方).

1… Java弹出菜单,为JTextArea添加了右键弹出式菜单

参考:/sl-shilong/articles/2829402.html

Java鼠标右键弹出菜单,该例子为JTextArea添加了右键弹出式菜单,实现了复制、粘贴以及剪切功能。import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEvent;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JFrame;import javax.swing.JMenuItem;import javax.swing.JPopupMenu;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.KeyStroke;import javax.swing.UIManager;public class Test extends JFrame {private static final long serialVersionUID = -594208799101297L;private JScrollPane pane = null;private TextAreaMenu text = null;public Test() {super("右键菜单");try {// 使用Windows的界面风格UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");} catch (Exception e) {e.printStackTrace();}text = new TextAreaMenu();pane = new JScrollPane(text);this.getContentPane().add(pane);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(300, 200);this.setVisible(true);}public static void main(String args[]) {new Test();}class TextAreaMenu extends JTextArea implements MouseListener {private static final long serialVersionUID = -2308615404205560110L;private JPopupMenu pop = null; // 弹出菜单private JMenuItem copy = null, paste = null, cut = null; // 三个功能菜单public TextAreaMenu() {super();init();}private void init() {this.addMouseListener(this);pop = new JPopupMenu();pop.add(copy = new JMenuItem("复制"));pop.add(paste = new JMenuItem("粘贴"));pop.add(cut = new JMenuItem("剪切"));copy.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_MASK));paste.setAccelerator(KeyStroke.getKeyStroke('V', InputEvent.CTRL_MASK));cut.setAccelerator(KeyStroke.getKeyStroke('X', InputEvent.CTRL_MASK));copy.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {action(e);}});paste.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {action(e);}});cut.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {action(e);}});this.add(pop);}public void action(ActionEvent e) {String str = e.getActionCommand();if (str.equals(copy.getText())) {// 复制this.copy();} else if (str.equals(paste.getText())) {// 粘贴this.paste();} else if (str.equals(cut.getText())) {// 剪切this.cut();}}public JPopupMenu getPop() {return pop;}public void setPop(JPopupMenu pop) {this.pop = pop;}public boolean isClipboardString() {boolean b = false;Clipboard clipboard = this.getToolkit().getSystemClipboard();Transferable content = clipboard.getContents(this);try {if (content.getTransferData(DataFlavor.stringFlavor) instanceof String) {b = true;}} catch (Exception e) {}return b;}public boolean isCanCopy() {boolean b = false;int start = this.getSelectionStart();int end = this.getSelectionEnd();if (start != end)b = true;return b;}public void mouseClicked(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mousePressed(MouseEvent e) {if (e.getButton() == MouseEvent.BUTTON3) {copy.setEnabled(isCanCopy());paste.setEnabled(isClipboardString());cut.setEnabled(isCanCopy());pop.show(this, e.getX(), e.getY());}}public void mouseReleased(MouseEvent e) {}}}

2.:下拉式菜单的创建步骤:

1.创建一个菜单栏。

2.调用 Frame 的 setMenuBar()方法将菜单栏加入 Frame 中。

3.分别创建若干个 Menu 对象,并加入 MenuBar 中。

4.对于每个 Menu 对象,分别创建若干个 MenuItem 对象,并加入 Menu 中。

import java.awt.*; public class MenuDemo {Frame f; MenuBar mb; Menu menuFile; MenuItem mItemNew, mItemOpen, mItemSave; MenuDemo() {f = new Frame("我的菜单实例"); f.setBounds(300, 100, 400, 300); mb = new MenuBar(); // 创建菜单栏MenuBar menuFile = new Menu("文件"); mItemNew = new MenuItem("新建"); mItemOpen = new MenuItem("打开"); menuFile.add(mItemNew); mItemSave = new MenuItem("保存"); menuFile.add(mItemOpen); // 加入分割线 menuFile.addSeparator(); menuFile.add(mItemSave); mb.add(menuFile); // 菜单栏中加入“文件”菜单 // setMenuBar:将此窗体的菜单栏设置为指定的菜单栏。 f.setMenuBar(mb); f.setVisible(true); } public static void main(String[] args) {new MenuDemo(); } }

3:弹出式菜单的创建步骤:

1.先建立最基本的JFrame框架.

2.创建右键弹出式菜单(JPopupMenu)和添加的菜单项(JMenuItem). 3.使用add方法和insert方法向JPopupMenu中添加或者插入. 4.通过调用弹出式菜单触发器对应的show方法来显示弹出式菜单,检查所有的MouseEvent事件,看其是否是弹出式菜单触发器,然后在合适的时候显示弹出式菜单

import java.awt.event.*; import javax.swing.*; public class JPopMenu_Demo extends JFrame {// 弹出菜单的实现,弹出菜单是一个可弹出并显示一系列选项的小窗口 JPopupMenu popupMenu; public JPopMenu_Demo() {super("右键弹出式菜单"); // 调用父类构造函数 // 实例化弹出菜单 popupMenu = new JPopupMenu(); // 增加菜单项到菜单上 popupMenu.add(new JMenuItem("菜单项")); popupMenu.add(new JButton("按钮")); popupMenu.add(new JLabel("标签")); myEvents(); setSize(350, 300); // 设置窗口大小 setLocation(400, 200); setVisible(true); // 设置窗口为可视 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口时退出程序 } private void myEvents() {// 窗口的鼠标事件处理 addMouseListener(new MouseAdapter() {// 点击鼠标 public void mousePressed(MouseEvent event) {// 调用triggerEvent方法处理事件 triggerEvent(event); } // 释放鼠标 public void mouseReleased(MouseEvent event) {triggerEvent(event); } private void triggerEvent(MouseEvent event) {// 处理事件 // isPopupTrigger():返回此鼠标事件是否为该平台的弹出菜单触发事件。 if (event.isPopupTrigger()) // 显示菜单 popupMenu.show(event.getComponent(), event.getX(), event.getY()); } }); } public static void main(String args[]) {new JPopMenu_Demo(); } }

4:选项卡窗体:

1.基本说明:

2.常用方法:

我们把多个JPanel的对象添加到 JTabbedPanel中去 。然后再

JTabbedPanel 添加到窗体,代码如下:

JTabbedPane jp=new JTabbedPane(JTabbedPane.LEFT) ; //设置选项卡在坐标JPanel p1=new JPanel() ;JPanel p2=new JPanel() ;JPanel p3=new JPanel() ;JPanel p4=new JPanel() ; //创建多个容器jp.add("窗体1", p1) ;jp.add("窗体2", p2) ;jp.add("窗体3", p3) ;//添加子容器,并且为选项卡添加名字this.add(jp,BorderLayout.CENTER); //将选项卡窗体添加到主窗体上去

import java.awt.*; import javax.swing.*; /** * <p>Title: 选项卡演示</p> * <p>Description: 这里是一个选项卡演示,点击不同的卡片,显示的内容不同</p> */ public class JTabbedPaneDemo1 extends JPanel {public JTabbedPaneDemo1() {super(new GridLayout(1, 1)); ImageIcon icon = createImageIcon("images/MyIcon.gif"); JTabbedPane tabbedPane = new JTabbedPane(); Component panel1 = makeTextPanel("#第一个卡片#"); tabbedPane.addTab("One", icon, panel1, "第一个卡片提示信息!"); tabbedPane.setSelectedIndex(0); Component panel2 = makeTextPanel("##第二个卡片##"); tabbedPane.addTab("Two", icon, panel2, "第二个卡片提示信息!"); Component panel3 = makeTextPanel("###第三个卡片###"); tabbedPane.addTab("Three", icon, panel3, "第三个卡片提示信息!"); Component panel4 = makeTextPanel("####第四个卡片####"); tabbedPane.addTab("Four", icon, panel4, "第四个卡片提示信息!"); // 将选项卡添加到panl中 add(tabbedPane); } /** * <br> * 方法说明:添加信息到选项卡中 <br> * 输入参数:String text 显示的信息内容 <br> * 返回类型:Component 成员对象 */ protected Component makeTextPanel(String text) {JPanel panel = new JPanel(false); JLabel filler = new JLabel(text); filler.setHorizontalAlignment(JLabel.CENTER); panel.setLayout(new GridLayout(1, 1)); panel.add(filler); return panel; } /** * <br> * 方法说明:获得图片 <br> * 输入参数:String path 图片的路径 <br> * 返回类型:ImageIcon 图片对象 */ protected static ImageIcon createImageIcon(String path) {// .URL imgURL = TabbedPaneDemo.class.getResource(path); if (path != null) {return new ImageIcon(path); } else {System.out.println("Couldn't find file: " + path); return null; } } public static void main(String[] args) {// 使用Swing窗体描述 // JFrame.setDefaultLookAndFeelDecorated(true); try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) {} // 创建窗体 JFrame frame = new JFrame("TabbedPaneDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new JTabbedPaneDemo1(), BorderLayout.CENTER); // 显示窗体 frame.setSize(400, 200); frame.setVisible(true); } }

Java Swing中的下拉式菜单(menu) 弹出式菜单(JPopupMenu) 选项卡窗体(JTabbedPane) TextArea右键菜单 组件使用案例

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。