JTextField在启动时没有出现在JPanel中

时间:2012-11-05 04:32:24

标签: java swing jpanel jtextfield layout-manager

JTextField就在那里,因为当我将鼠标移动到它应该是鼠标图标变为光标的位置时,当我点击它时会显示出来。但它在发布时是看不见的。我错过了什么?

public class JavaSwingTextfield extends JFrame {
    private static final long serialVersionUID = 1L;

    JTextField myTextField;

    public JavaSwingTextfield(){

        /***** JFrame setup *****/

        // Set the size of the window
        setSize(600,600);

        // Make the application close when the X is clicked on the window
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        // Makes the JFrame visible to the user
        setVisible(true);

        /***** JFrame setup END *****/


        /***** JButton setup *****/

        // Create a JLabel and set its label to "Start"
        myTextField = new JTextField("Start");

        // Set the label's size
        myTextField.setSize(100, 50);

        // Put the label in a certain spot
        myTextField.setLocation(200, 50);

        // Set a font type for the label
        //Font myFont = new Font("Serif", Font.BOLD, 24);
        //myTextField.setFont(myFont);

        // Add the label to the JFrame
        add(myTextField);

        /***** JButton setup END *****/

    }


    /***** The main method *****/
    public static void main(String[] args){ 

        new JavaSwingTextfield();

    }

}

2 个答案:

答案 0 :(得分:11)

  • 使用Event Dispatch Thread创建GUI组件
  • 在将所有组件添加到setVisible(..)之前不要致电JFrame(这是以上代码将实际错误+1传输到@Clark)
  • 不要不必要地延长JFrame
  • 请勿致电setSize(..),而只需在设置JFrame#pack()可见
  • 之前致电JFrame
  • 请勿在{{1​​}}上致电setSize(),而应查看其构造函数:JTextField(String text,int columns)
  • 使用适当的JTextField,有关示例,请参阅此处:A Visual Guide to Layout Managers

这是我做的一个例子(基本上是修复代码):

LayoutManager

答案 1 :(得分:4)

您将JTextfield添加到JFrame 后,JFrame 可见。只需手动添加JTextField