我们可以将一个可编辑的JTextField添加到一行中的面板,如Java中的panel.add(new JTextField(text));
。有没有一种标准的方法可以使用像panel.add(new JTextField(text).setEditable(false));
这样的东西来设置它而不编写我们自己的方法?
答案 0 :(得分:3)
可以这样做,但你仍然不应该这样做。
panel.add(new JTextField(text){{setEditable(false);}});
这会创建一个匿名类,在初始化块中将其设置为不可编辑。
这样做是不好的做法。您应该将其拆分为多行,或者编写一个方法来执行此操作。代码将更易于维护,更容易阅读。
答案 1 :(得分:2)
创建合适的工厂方法:
public static void main(String[] args)
{
JPanel panel = new JPanel();
NonEditableTextFieldFactory nonEditableTextFieldFactory = new NonEditableTextFieldFactory();
panel.add(nonEditableTextFieldFactory.createNonEditable());
panel.add(nonEditableTextFieldFactory.createNonEditable());
panel.add(nonEditableTextFieldFactory.createNonEditable());
}
static class NonEditableTextFieldFactory
{
public JTextField createNonEditable()
{
JTextField jTextField = new JTextField();
jTextField.setEditable(false);
return jTextField;
}
}