为了代码少,我去掉了与问题无关的代码,比如addActionListener();
等
我的主类是public class TF2_Account_Chief
我有我的主要 Jframe f;
及其内容:
private static JFrame f = new JFrame("TF2 Account C.H.I.E.F.");
private JLabel runnableTogetherLabel = new JLabel("How many idlers would you like to run at a time?");
private static JTextField runnableTogetherInput = new JTextField();
private JButton runButton = new JButton("Run!");
private JButton stopButton = new JButton("Stop!");
private JButton resetButton = new JButton("Reset!");
private JButton exitButton = new JButton("Exit!");
然后我设置了所有内容的属性:
public void launchFrame() {
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
f.add(runnableTogetherInput);
f.add(runnableTogetherLabel);
f.add(runButton);
f.add(stopButton);
f.add(resetButton);
f.add(exitButton);
f.setSize(625, 500);
runnableTogetherInput.setSize(35, 20);
runnableTogetherLabel.setSize(275, 25);
runButton.setSize(60, 25);
stopButton.setSize(65, 25);
resetButton.setSize(70, 25);
exitButton.setSize(60, 25);
f.setLocation(0, 0);
runnableTogetherInput.setLocation(285, 3);
runnableTogetherLabel.setLocation(5, 0);
runButton.setLocation(330, 0);
stopButton.setLocation(395, 0);
resetButton.setLocation(465, 0);
exitButton.setLocation(540, 0);
}
然后我有我的 main()
方法:
public static void main(String[] args) throws IOException {
TF2_Account_Chief gui = new TF2_Account_Chief();
gui.launchFrame();
Container contentPane = f.getContentPane();
contentPane.add(new TF2_Account_Chief());
}
然后我的第二个 JFrame iF
没有正确显示内容:
private void invalidInput() {
JFrame iF = new JFrame("Invalid Input!");
JLabel iL = new JLabel("The input you have entered is invalid!");
JButton iB = new JButton("Exit!");
Container contentPane2 = iF.getContentPane();
contentPane2.add(new TF2_Account_Chief());
iF.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
iF.pack();
iF.setVisible(true);
iF.add(iL);
iF.add(iB);
iF.setSize(500, 300);
iL.setSize(125, 25);
iB.setSize(60, 25);
iF.setLocation(0, 0);
iL.setLocation(0, 15);
iB.setLocation(0, 45);
}
现在,JFrame iF
在 invalidInput()
方法被调用时启动,但您看不到它,因为那部分代码与问题无关.重要的是 JFrame iF
已启动。
新框架看起来像这样:
关于为什么内容不能正确显示的任何想法?
(不恰当的,我的意思是 JButton iB
占据了整个框架,框架是浅蓝色而不是正常的灰色。)
最佳答案
您正在使用绝对位置而不使用 null
布局,这就是您看到大按钮的原因。
要查看每个组件,您必须使用
iF.setLayout(null);
但是这不是一个好的做法,我建议你学习how to use Layouts并将所有工作留给布局管理器
关于java - 为什么我的 JFrame 的内容显示不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17487139/