JTextField(文本框)加入到JPanel(面板)中不能正常显示。
(后面有问题分析,看完绝对能帮你解决问题哦!!!)
代码示例:
package CSDN;
import javax.swing.*;
public class JtextjoinJpanel {
public static void main(String[] args) {
JFrame f=new JFrame("文本框加入面板");
JPanel jp = new JPanel();
JTextField jt = new JTextField();
f.setBounds(400,400,500,500); //设置窗口位置大小
jp.setSize(200,200); //设置面板大小
jt.setSize(100,100); //设置文本框大小
jp.add(jt); //将文本框加入到面板
f.add(jp);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
结果:
解决方法:
- 设置文本框参数.
JTextField jt = new JTextField();
改为:JTextField jt = new JTextField(10);
- 将面板布局设置为null.
加入 jp.setLayout(null);
结果:
注 :10的意思为文本框可以输入的字符个数。
问题产生原因(个人认为):
- 由于面板采用的是流布局方式,创建文本框时,若没有输入默认参数(字符串),那么文本框默认为空,流方式便会将其覆盖,只留下边框(所以看见像一条竖线,点击仍可输入字符),若给其输入参数10,就相当于有10个字符已经输入,故不会覆盖;另不设置为流布局同样可以解决问题。
故如果
TextField jt = new JTextField();
改为 TextField jt = new JTextField("你好啊");
结果为
解决问题的给一个赞吧,动力哦