我正在尝试为简单程序制作GUI。我只想要一个文本字段,以便用户可以输入一些文本,但JTextField将不会显示在我的JPanel中,即使我的按钮和标签都没有问题。任何有关如何解决这个问题的帮助非常感谢。这是我的代码。
public static void main(String[] args) {
JFrame frame = new JFrame("David's cube program!");
frame.setVisible(true);
frame.setSize(800,350); // i used some code from
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.add(panel1);
panel1.setLayout(null);
JButton button = new JButton("Click to display moves");
panel1.add(button);
button.setLocation(150, 20);
button.setSize(200,50);
button.addActionListener (new Button1Action());
JLabel textArea = new JLabel("Click the button to run moves!");
panel1.add(textArea);
textArea.setLocation(15, 40);
textArea.setSize(600, 100);
textBox = new JTextField(20);
textBox.setFont(textBox.getFont().deriveFont(20f));
textBox.setLocation(15, 180);
textBox.addActionListener (new TextAction() );
textBox.setVisible(true);
panel1.add(textBox);
JButton button2 = new JButton("Click to change file path");
panel1.add(button2);
button2.setLocation(150, 160);
button2.setSize(200,50);
button2.addActionListener (new Button2Action());
JLabel textArea2 = new JLabel("the textfield should be just above me");
panel1.add(textArea2);
textArea2.setLocation(15, 200);
textArea2.setSize(600, 100);
}
答案 0 :(得分:0)
将frame.add(panel1)
移至main的末尾,就在#frame; setVisible(true)'之前。因此,main
的最后一个线索变为:
textArea2.setSize(600, 100);
frame.add(panel1);
frame.setVisible(true)
答案 1 :(得分:0)
我将frame.setVisible(true)
作为最后一行,textBox.setSize(100, 50);
添加textBox
变量,这解决了问题。
答案 2 :(得分:0)