如何禁用"匿名" JTextField在将其添加到组件时?

时间:2016-03-09 15:10:59

标签: java swing

如果您有JPanel,则可以通过两种方式添加JTextField

方式一:

JTextField myTextField = new JTextField(10);
JPanel myPanel = new JPanel();
myPanel.add(myTextField);

方式二:

JPanel myPanel = new JPanel();
myPanel.add(new JTextField(10));

我不知道,如何调用两个方式(匿名JTextField,内部JTextField,......?),所以我没有找到任何关于它的信息。

使用第二种方式时,我不知道如何在创建时禁用JTextField

myPanel.add(new JTextField(10).setEnabled(false));

无法处理错误The method add(Component) in the type Container is not applicable for the arguments (void)

那么在创建/添加时可以更改JTextField吗?

1 个答案:

答案 0 :(得分:2)

为匿名类提供一个非静态初始化程序并在那里禁用该字段:

myPanel.add(new JTextField(10) { 
    { setEnabled(false); }
});

或者如果所有必须在一行上:

myPanel.add(new JTextField(10) {{ setEnabled(false); }});