有3个班。
Main(调用 WindowApp 类)
public class Main {
public static void main(String[] args) {
new WindowApp();
}
}
WindowApp(对话框结构在哪里)
import javax.swing.*;
public class WindowApp extends JFrame {
private String title = "AdventureTime The Game";
static JFrame jFrame = new JFrame();
WindowApp() {
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(550, 380);
setLocationRelativeTo(null);
setResizable(false);
setTitle(title);
}
}
菜单(我想在其中为 WindowApp 对话框创建菜单选项卡的类)
import javax.swing.*;
public class Menu extends WindowApp {
JMenuBar jMenuBar = new JMenuBar();
JMenu file = new JMenu("File");
void addMenu() {
jMenuBar.add(file);
jFrame.setJMenuBar(jMenuBar);
jFrame.revalidate();
}
}
问题:如何在 WindowApp 中调用 Menu 以便在此对话框中有一个 Menu 选项卡,或者我在 Menu 类中搞砸了一些东西,我只是不知道如何正确构建类结构,并且能够从一个到另一个调用方法..
谢谢您的帮助!
最初,可能很难提前确定是否需要继承或聚合。因此,一般原则是最好从聚合开始,只有在真正需要时才转向继承。
第二条原则:只在极端情况下使用静态字段,使用普通字段,将值传递给构造函数。
因此,示例逐步修正:
jFrame
被移除,而是被使用this
,传递给构造函数Menu
不继承自MainWindow
(菜单不是窗口)JFrame
),所以让它成为一个字段Menu
JFrame
来初始化一个字段Menu
addMenu
对创建对象的调用。结果是源代码中的以下草图:
这只是一个工作草图。但有利于发展。比如
revalidate
这里不需要,菜单需要通过添加项来开发,setVisible
通常最好在设置完所有的窗口参数之后再做等等。等等