Java JTextField清除Jframe
我有一个JFrame,包括一个工作按钮和一个标签。程序运行良好,当我点击按钮时,会弹出一条消息,上面写着开始。但是如果我尝试添加一个JTextField,当我运行程序时,框是空的,用于字段、按钮或标签 不带字段的工作代码如下所示Java JTextField清除Jframe,java,swing,user-interface,jtextfield,Java,Swing,User Interface,Jtextfield,我有一个JFrame,包括一个工作按钮和一个标签。程序运行良好,当我点击按钮时,会弹出一条消息,上面写着开始。但是如果我尝试添加一个JTextField,当我运行程序时,框是空的,用于字段、按钮或标签 不带字段的工作代码如下所示 JFrame frame = new JFrame("Test"); frame.setSize(750,300); frame.setLocationRelativeTo(null); frame.setResizable(false)
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);
下面是字段无效的代码
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);
因此,不知何故,这4行代码正在清除帧。在添加所有组件后的最后一行中调用frame.setVisibletrue。您正在添加组件之前调用它。如果您将
在代码的底部,它可以工作。尝试移动您的:frame.setVisibletrue;作为最后一句话。移动
frame.setVisible(true);
作为最后一个电话。要了解更多信息,请查看下面的链接
似乎您从未在结尾处使框架可见。为此,只需将frame.setVisibletrue;最后。无需将按钮的visible属性显式设置为true。将面板添加到框架的容器中,并在末尾将fame的visible属性设置为true
frame.getContentPane().add(panel);
....
frame.setVisible(true);
我看到了一个类似的问题,但似乎不起作用。这两个问题对我来说都不起作用,但我想我知道问题出在哪里。每次添加Swing组件时,你都必须调用此方法,不,你不会,重新验证应该更多fine@MadProgrammer这也行。所有内容都在提供的链接中解释。@MadProgrammer如果我删除该语句会更好吗?@MadProgrammer没问题。