Java textField的setText()方法无效

//部分主要代码publicclasstestTextFieldextendsJFrame{publictestTextField(Stringtitle){super(... //部分主要代码
public class testTextField extends JFrame {

public testTextField(String title){
super(title);
initDialog();
}

JTextField txt1 = new JTextField(10);//为什么此文本框仍然为空???应该是hello才对呀。
public void setValue(String str){
txt1.setText("hello");

}

private JPanel initCenter(){
JPanel centerPanel = new JPanel();//用来容纳多个组件的容器
JPanel infoPanel = new JPanel();//该容器使用GridBagLayout来布局组件
GridBagLayout layout = new GridBagLayout();
infoPanel.setLayout(layout);//设置容器的布局管理器

JLabel lbl1 = new JLabel("商品编号:");
JLabel lbl2 = new JLabel("商品名称:");
JLabel lbl3 = new JLabel("规格型号:");
JLabel lbl4 = new JLabel("单位:");
JLabel lbl5 = new JLabel("品牌:");
JLabel lbl6 = new JLabel("颜色:");
JLabel lbl7 = new JLabel("当前库存:");
JLabel lbl8 = new JLabel("备注:");
infoPanel.add(lbl1,new GBC(0,0,1,1).setInsets
(new Insets(0,8,0,0)));

infoPanel.add(txt1, new GBC(1, 0, 2, 1).setInsets(new Insets(0, 4, 0, 0)));

infoPanel.add(lbl2, new GBC(3, 0, 1, 1));
infoPanel.add(new JTextField(10), new GBC(4, 0, 2, 1).setFill(GBC.HORIZONTAL).setInsets(new Insets(0, 4, 0, 0)));
infoPanel.add(lbl3, new GBC(0, 1, 1, 1).setInsets(new Insets(0, 8, 0, 0)));
infoPanel.add(new JTextField(10), new GBC(1, 1, 2, 1).setInsets(new Insets(0, 4, 0, 0)));
infoPanel.add(lbl4, new GBC(3, 1, 1, 1));
infoPanel.add(new JTextField(10), new GBC(4, 1, 2, 1).setFill(GBC.HORIZONTAL).setInsets(new Insets(4, 6, 4, 4)));
infoPanel.add(lbl5, new GBC(0, 2, 1, 1).setInsets(new Insets(0, 8, 0, 0)));
infoPanel.add(new JTextField(10), new GBC(1, 2, 1, 1).setFill(GBC.HORIZONTAL).setInsets(new Insets(0, 4, 0, 0)));
infoPanel.add(lbl6, new GBC(3, 2, 1, 1));
infoPanel.add(new JTextField(10), new GBC(4, 2, 2, 1).setFill(GBC.HORIZONTAL).setInsets(new Insets(0, 4, 0, 0)));
infoPanel.add(lbl7, new GBC(0, 3, 1, 1).setInsets(new Insets(0, 8, 0, 0)));
infoPanel.add(new JTextField(10), new GBC(1, 3, 1, 1).setFill(GBC.HORIZONTAL).setInsets(new Insets(0, 4, 0, 0)));
infoPanel.add(lbl8, new GBC(3, 3, 1, 1));
infoPanel.add(new JTextField(10), new GBC(4, 3, 2, 1).setFill(GBC.HORIZONTAL).setInsets(new Insets(4, 6, 4, 4)));

infoPanel.setBorder(new TitledBorder("商品信息"));//设置容器的边界
centerPanel.setLayout(new BorderLayout());
//容纳了多个组件的容器添加到中间左边的容器中
centerPanel.add(infoPanel,BorderLayout.CENTER);
return centerPanel;

}
public static void main(String[] args) {
// TODO Auto-generated method stub
new testTextField("my test");

}

}//理说,商品编号后的 文本框中应该显示:hello 才是,但却为空
展开
 我来答
小傻

推荐于2016-06-22 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

Java  textField的setText()方法无效的原因如下:

  1. textField没有初始化完成,导致setText()方法无法获取并执行。

  2. java代码存在其他错误,导致所有的对象没有生成,无法使用该方法。

  3. setText()填充的文本是空字符串,没有显示数据。

曉彬寶
2009-02-22 · 超过19用户采纳过TA的回答
知道答主
回答量:93
采纳率:40%
帮助的人:29.6万
展开全部
上面的都对,但是楼上的那个
new testTextField("my test").setValue("hello"); //调用这个方法就可以了,这样就初始化文本域了

}

JTextField txt1 = new JTextField(10);
public void setValue(String str){
txt1.setText("hello"); //改成txt1.setText(str);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
啥子尚9269
推荐于2018-03-14 · TA获得超过450个赞
知道答主
回答量:101
采纳率:0%
帮助的人:122万
展开全部
你把setText()写在setValue()中
但是你调用过setValue()吗
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
spoony_peng
2009-02-22 · TA获得超过195个赞
知道答主
回答量:181
采纳率:0%
帮助的人:152万
展开全部
public static void main(String[] args) {
// TODO Auto-generated method stub
new testTextField("my test").setValue("hello"); //调用这个方法就可以了,这样就初始化文本域了

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式