【发布时间】:2014-09-22 21:18:18
【问题描述】:
我有这个 Other 类,我在里面做了面板。我如何在主类中添加这个面板(当我这样运行时,我得到空白窗口)。
public class Other extends JFrame {
JTextField input = new JTextField(4);
public JPanel panel () {
//JPanel for all
JPanel totalGUI = new JPanel();
totalGUI.setLayout(null);
//Input panel
JPanel inputPanel = new JPanel();
inputPanel.setLayout(null);
inputPanel.setLocation(50,50);
inputPanel.setSize(250, 30);
totalGUI.add(inputPanel);
input.setSize(100,30);
input.setLocation(150,30);
inputPanel.add(input);
totalGUI.setOpaque(true);
return totalGUI;
}
public Other () {
super("Guess The Number");
}
}
这是我的主要课程:
public class Main {
public static void main (String[] args) {
Other obj = new Other();
obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
obj.setSize(300,300);
obj.setVisible(true);
}
}
【问题讨论】:
-
1.不要为此目的使用主类,2. 在构造函数(其他)中创建所有内容,3. 使用 JFrame 的局部变量而不是扩展 JFrame
-
@mKorbel 为什么 OP 不应该扩展
JFrame? -
我会记住这一点的。 :D
-
@msrd0 让我们想象一下我们有最复杂的 GUI,你想如何从另一个类中更改 JFrames.whatever(),是的 SwingUtilities 或 Window[] 中有方法返回...的数组,但是你必须为JFrame创建一个临时变量,如果你愿意,创建一个局部变量并不容易
-
@msrd0 搜索继承 vs.组成:-)