[英]Adding a JMenuBar to a JFrame from another class
我創建了一個包含基本 JFrame 的類和另一個包含 JMenu 代碼的類,但是當我嘗試在窗口類中調用 JMenu 時,我無法使用 setJMenu()。 我不確定我錯過了什么有人可以幫忙嗎?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Window {
JFrame frame;
Menubar m = new Menubar();
Window(){
frame = new JFrame("Test Frame");
frame.setJMenuBar(m);
frame.setSize(200, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Menubar {
JMenuBar menubar;
JMenu menu;
JMenuItem item1;
Menubar(){
menubar = new JMenuBar();
menu = new JMenu("File");
item1 = new JMenuItem("item");
menubar.add(menu);
menu.add(item1);
}
}
VS Code 告訴我使用 getJMenu 也不起作用。
您的問題只是您沒有在 MenuBar 中公開 JMenuBar
而不是你的MenuBar()
構造函數,添加這個
public static JMenuBar createMenuBar(){
menubar = new JMenuBar();
menu = new JMenu("File");
item1 = new JMenuItem("item");
menubar.add(menu);
menu.add(item1);
return menu;
}
在窗口中
Window(){
frame = new JFrame("Test Frame");
frame.setJMenuBar(MenuBar.createMenuBar());
當然,問題在於您沒有將Action
添加到菜單欄中的 JMenuItem,這就是為什么在一個類中構建整個 GUI 通常更好……除非您還添加 API 來執行類似的操作通過Window
中的方法設置按鈕的 Action
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.