[英]JTextField clears Jframe
我有一个JFrame,其中包含一个工作按钮以及一个标签。 该程序运行正常,当我单击按钮时,我会弹出一条消息,提示“正在启动”。 但是,如果我尝试添加JTextField,则在运行程序时,该框对于字段,按钮或标签来说是空白的。
没有该字段的工作代码如下。
JFrame frame = new JFrame("Test");
frame.setSize(750,300);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel panel = new JPanel(false);
JLabel label = new JLabel("The Game.");
JButton button = new JButton("Start");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//Runs this code when button is pressed
JOptionPane.showMessageDialog(null, "Starting");
}
}
);
button.setContentAreaFilled(true);
button.setEnabled(true);
button.setToolTipText("Starts");
button.setVisible(true);
frame.add(panel);
panel.add(label);
panel.add(button);
带有无效字段的代码如下。
JFrame frame = new JFrame("Test");
frame.setSize(750,300);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel panel = new JPanel(false);
JLabel label = new JLabel("The Game.");
JButton button = new JButton("Start");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//Runs this code when button is pressed
JOptionPane.showMessageDialog(null, "Starting");
}
}
);
button.setContentAreaFilled(true);
button.setEnabled(true);
button.setToolTipText("Starts");
button.setVisible(true);
JTextField field = new JTextField("test", 20);
field.setEnabled(true);
field.setVisible(true);
frame.add(panel);
panel.add(label);
panel.add(button);
panel.add(field);
因此,以某种方式,这四行代码清除了框架。
在最后一行(添加所有组件之后frame.setVisible(true)
调用frame.setVisible(true)
)。 您在添加组件之前先调用它。 构图
如果你把
frame.pack(); or
frame.setVisible(true);
在代码的底部。
尝试移动您的: frame.setVisible(true);
作为最后的陈述。
无需将button的visible属性显式设置为true。 将面板添加到框架的Container中,然后在最后简单地将名望的visible属性设置为true。
frame.getContentPane().add(panel);
....
frame.setVisible(true);
看来您永远都不会在最后看到框架。 为此,只需放入frame.setVisible(true);
在末尾。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.