Java Can';t将JTextfield添加到JPanel
我一直在为期末考试做一些GUI练习,我想我已经掌握了基本知识。然而,每次我尝试向我的JPanel添加JTextField时,我的JButton都会被删除,整个接口都会消失。最后,当我点击按钮时,我想改变文本区域,但我甚至看不到文本区域。我知道我可能犯了一个新手级的错误,所以请不要杀我。下面的代码不起作用-但是一旦我去掉JTextField,它就可以正常运行了Java Can';t将JTextfield添加到JPanel,java,swing,Java,Swing,我一直在为期末考试做一些GUI练习,我想我已经掌握了基本知识。然而,每次我尝试向我的JPanel添加JTextField时,我的JButton都会被删除,整个接口都会消失。最后,当我点击按钮时,我想改变文本区域,但我甚至看不到文本区域。我知道我可能犯了一个新手级的错误,所以请不要杀我。下面的代码不起作用-但是一旦我去掉JTextField,它就可以正常运行了 import javax.swing.*; import java.awt.event.*; import java.awt.*; imp
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.JTextField;
public class test5 {
private JFrame f;
private JPanel p;
private JButton b1;
private JTextField jt;
public test5 () {
gui();
}
public void gui () {
f = new JFrame();
f.setVisible(true);
f.setSize(600,400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jt = new JTextField(20);
jt.setEditable(false);
p = new JPanel();
p.setBackground(Color.YELLOW);
b1 = new JButton("TEST");
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Hey, hey, hey!");
jt.setText("Hello");
}
});
p.add(b1);
p.add(jt);
f.add(p, BorderLayout.SOUTH);
}
public static void main (String args[]) {
test5 test = new test5();
}
}
在使框架可见之前,应将所有构件添加到框架中。请尝试以下操作:
f.add(p, BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
在使框架可见之前,应将所有构件添加到框架中。请尝试以下操作:
f.add(p, BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
在使框架可见之前,应将所有构件添加到框架中。请尝试以下操作:
f.add(p, BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
在使框架可见之前,应将所有构件添加到框架中。请尝试以下操作:
f.add(p, BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
哦谢谢你的回复。但是为什么呢?@Aire,默认情况下,所有组件的大小都是(0,0),因此它们不会被绘制。pack()方法调用布局管理器,它将根据布局管理器的规则设置组件的大小/位置。哦!谢谢你的回复。但是为什么呢?@Aire,默认情况下,所有组件的大小都是(0,0),因此它们不会被绘制。pack()方法调用布局管理器,它将根据布局管理器的规则设置组件的大小/位置。哦!谢谢你的回复。但是为什么呢?@Aire,默认情况下,所有组件的大小都是(0,0),因此它们不会被绘制。pack()方法调用布局管理器,它将根据布局管理器的规则设置组件的大小/位置。哦!谢谢你的回复。但是为什么呢?@Aire,默认情况下,所有组件的大小都是(0,0),因此它们不会被绘制。pack()方法调用布局管理器,它将根据布局管理器的规则设置组件的大小/位置。