Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTextField清除Jframe_Java_Swing_User Interface_Jtextfield - Fatal编程技术网

Java JTextField清除Jframe

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,包括一个工作按钮和一个标签。程序运行良好,当我点击按钮时,会弹出一条消息,上面写着开始。但是如果我尝试添加一个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);
下面是字段无效的代码

    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没问题。