Heim >Java >javaLernprogramm >So verwenden Sie Java GUI-Programmiermenükomponenten
Gemeinsame menübezogene Komponenten sind in der folgenden Tabelle aufgeführt:
Name der Menükomponente | Funktion |
---|---|
MenuBar | Menüleiste, Menücontainer. |
Menu | Menükomponente, Container mit Menüelementen. Es ist auch eine Unterklasse von Menultem und kann daher als Menüelement |
PopupMenu | Kontextmenükomponente (Rechtsklick-Menükomponente) |
Menultem | Menüelementkomponente verwendet werden. |
CheckboxMenuItem | Checkbox-Menüelementkomponente |
Das folgende Bild ist ein allgemeines menübezogenes Komponentenintegrationssystemdiagramm:
Menübezogene Komponentenverwendung:
1. Bereiten Sie Menüelementkomponenten vor, Diese Komponenten können MenuItem und seine Unterklassenobjekte sein
2. Bereiten Sie die Menükomponente Menu oder PopupMenu vor (klicken Sie mit der rechten Maustaste, um das Untermenü aufzurufen) und fügen Sie die im ersten Schritt vorbereitete Menüelementkomponente hinzu Menüleistenkomponente MenuBar, Fügen Sie die im zweiten Schritt vorbereitete Menüleistenkomponente zum Fensterobjekt hinzu.
Tipps:
1. Wenn Sie eine Trennlinie zwischen Menüpunkten in einem bestimmten Menü hinzufügen möchten, müssen Sie nur Menu's add (new MenuItem(-)) aufrufen.
2. Wenn Sie einem Menüelement eine Tastenkombination zuordnen möchten, müssen Sie diese nur beim Erstellen des Menüelementobjekts festlegen. Um beispielsweise die Tastenkombination Strg+Umschalt+/ einem Menüelement zuzuordnen, müssen Sie nur Folgendes tun: need: new MenuItem("menu item Name",new MenuShortcut(KeyEvent.VK_Q,true);
Fall 1:
Verwenden Sie allgemeine Menükomponenten in awt, um den unten gezeigten Effekt zu vervollständigen
Democode 1:
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class SimpleMenu { //创建窗口 private Frame frame = new Frame("这里测试菜单相关组件"); //创建菜单条组件 private MenuBar menuBar = new MenuBar(); //创建文件菜单组件 private Menu fileMenu = new Menu("文件"); //创建编辑菜单组件 private Menu editMenu = new Menu("编辑"); //创建新建菜单项 private MenuItem newItem = new MenuItem("新建"); //创建保存菜单项 private MenuItem saveItem = new MenuItem("保存"); //创建退出菜单项 private MenuItem exitItem = new MenuItem("退出"); //创建自动换行选择框菜单项 private CheckboxMenuItem autoWrap = new CheckboxMenuItem("自动换行"); //创建复制菜单项 private MenuItem copyItem = new MenuItem("复制"); //创建粘贴菜单项 private MenuItem pasteItem = new MenuItem("粘贴"); //创建格式菜单 private Menu formatMenu = new Menu("格式"); //创建注释菜单项 private MenuItem commentItem = new MenuItem("注释"); //创建取消注释菜单项 private MenuItem cancelItem = new MenuItem("取消注释"); //创建一个文本域 private TextArea ta = new TextArea(6, 40); public void init(){ //定义菜单事件监听器 ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); ta.append("单击“"+command+"”菜单\n"); if (command.equals("退出")){ System.exit(0); } } }; //为注释菜单项和退出菜单项注册监听器 commentItem.addActionListener(listener); exitItem.addActionListener(listener); //为文件菜单fileMenu添加菜单项 fileMenu.add(newItem); fileMenu.add(saveItem); fileMenu.add(exitItem); //为编辑菜单editMenu添加菜单项 editMenu.add(autoWrap); editMenu.add(copyItem); editMenu.add(pasteItem); //为格式化菜单formatMenu添加菜单项 formatMenu.add(commentItem); formatMenu.add(cancelItem); //将格式化菜单添加到编辑菜单中,作为二级菜单 editMenu.add(new MenuItem("-")); editMenu.add(formatMenu); //将文件菜单和编辑菜单添加到菜单条中 menuBar.add(fileMenu); menuBar.add(editMenu); //把菜单条设置到frame窗口上 frame.setMenuBar(menuBar); //把文本域添加到frame中 frame.add(ta); //设置frame最佳大小并可见 frame.pack(); frame.setVisible(true); } public static void main(String[] args) { new SimpleMenu().init(); } }Fall 2:
Über PopupMenu erzielen Sie den folgenden Effekt:
Implementierungsideen:
1. Erstellen Sie mehrere MenuItem-Menüelemente und fügen Sie sie zu PopupMenu hinzu. Fügen Sie PopupMenu zur Zielkomponente hinzu.
Für Komponenten, die das PopubMenu-Menü anzeigen müssen, registrieren Sie das Maus-Listener-Ereignis. Wenn der Benutzer die rechte Taste loslässt, wird das Menü angezeigt.
Demo-Code 2:import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class PopupMenuTest { private Frame frame = new Frame("这里测试PopupMenu"); // 创建PopubMenu菜单 private PopupMenu popupMenu = new PopupMenu(); // 创建菜单条 private MenuItem commentItem = new MenuItem("注释"); private MenuItem cancelItem = new MenuItem("取消注释"); private MenuItem copyItem = new MenuItem("复制"); private MenuItem pasteItem = new MenuItem("保存"); // 创建一个文本域 private TextArea ta = new TextArea("我爱中华!!!", 6, 40); // 创建一个Panel private Panel panel = new Panel(); public void init() { // 把菜单项添加到PopupMenu中 popupMenu.add(commentItem); popupMenu.add(cancelItem); popupMenu.add(copyItem); popupMenu.add(pasteItem); // 设置panel大小 panel.setPreferredSize(new Dimension(300, 100)); // 把PopupMenu添加到panel中 panel.add(popupMenu); // 为panel注册鼠标事件 panel.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { boolean flag = e.isPopupTrigger(); // 判断当前鼠标操作是不是触发PopupMenu的操作 if (flag) { // 让PopupMenu显示在panel上,并且跟随鼠标事件发生的地方显示 popupMenu.show(panel, e.getX(), e.getY()); } } }); // 把ta添加到frame中间区域中 frame.add(ta); // 把panel添加到frame底部 frame.add(panel, BorderLayout.SOUTH); // 设置frame最佳大小,并可视; frame.pack(); frame.setVisible(true); } public static void main(String[] args) { new PopupMenuTest().init(); } }.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Java GUI-Programmiermenükomponenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!