为了减少代码,我正在取出与问题无关的代码,例如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!");
Run Code Online (Sandbox Code Playgroud)
我设置了所有内容的属性:
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);
}
Run Code Online (Sandbox Code Playgroud)
然后我有我的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());
}
Run Code Online (Sandbox Code Playgroud)
然后我有我的第二个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);
}
Run Code Online (Sandbox Code Playgroud)
现在,JFrame iF
在invalidInput()
调用方法时启动,但是您无法看到,因为该部分代码与问题无关.重要的是它的JFrame iF
推出.
新框架如下所示:
关于为什么内容没有正确显示的任何想法?
(通过不正确,我的意思是JButton iB
占据整个框架,框架是浅蓝色而不是正常的灰色.)
您在不使用null
布局的情况下使用绝对位置,这就是您看到一个大按钮的原因.
要查看每个组件,您必须使用
iF.setLayout(null);
Run Code Online (Sandbox Code Playgroud)
但这不是一个好习惯,我建议你学习如何使用Layouts并将所有工作留给布局管理器
归档时间: |
|
查看次数: |
1381 次 |
最近记录: |