[英]Run a WindowBuilder GUI from another class which also contains a JFrame
[英]How to have a class which contains all the UI elements for a JFrame?
所以我有兩個類,一個用於創建 JFrame,另一個用於在 JFrame 上加載菜單欄,代碼如下:
import java.awt.Toolkit;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.ImageIcon;
public class Main extends JFrame{
static JFrame F = new Main();
static UI ui = new UI();
public Main()
{
ImageIcon img = new ImageIcon("icon.png");
setTitle("JFrame title");
setJMenuBar(ui);
setUndecorated(true);
//maximize window
setExtendedState(getExtendedState() | MAXIMIZED_BOTH);
setVisible(true);
setIconImage(img.getImage());
}
public static void main(String[] args)
{
}
} 然后是 UI 代碼:
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
public class UI extends JMenuBar{
JMenu menu = new JMenu("File");
JMenuItem i1,i2;
public UI() {
i1 = new JMenuItem("Save");
i2 = new JMenuItem("Load");
menu.add(i1);
menu.add(i2);
add(menu);
}
public static void main (String[] args) {
}
}
當我編譯沒有出現錯誤時,我運行了代碼,我只有 JFrame,我沒有任何錯誤
在setJMenuBar
中調用時 UI 仍未初始化。
public class Main extends JFrame {
static JFrame F = new Main();
public Main() {
UI ui = new UI();
ImageIcon img = new ImageIcon("icon.png");
setTitle("JFrame title");
setJMenuBar(ui);
setUndecorated(true);
//maximize window
setExtendedState(getExtendedState() | MAXIMIZED_BOTH);
setVisible(true);
setIconImage(img.getImage());
}
public static void main(String[] args) {
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.