gpt4 book ai didi

java - 为什么我的 JFrame 的内容显示不正确?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:34:07 25 4
gpt4 key购买 nike

为了代码少,我去掉了与问题无关的代码,比如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 iFinvalidInput() 方法被调用时启动,但您看不到它,因为那部分代码与问题无关.重要的是 JFrame iF 已启动。

新框架看起来像这样:JFrame iF

关于为什么内容不能正确显示的任何想法?

(不恰当的,我的意思是 JButton iB 占据了整个框架,框架是浅蓝色而不是正常的灰色。)

最佳答案

您正在使用绝对位置而不使用 null 布局,这就是您看到大按钮的原因。

要查看每个组件,您必须使用

iF.setLayout(null);

但是这不是一个好的做法,我建议你学习how to use Layouts并将所有工作留给布局管理器

关于java - 为什么我的 JFrame 的内容显示不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17487139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com