Java 在一行中添加一个不可编辑的 tJTextField
Java add a non-editable tJTextField in one line
我们可以在 Java 中像这样 panel.add(new JTextField(text));
在一行中将可编辑的 JTextField 添加到面板。有没有一种标准的方法可以在不编写我们自己的方法的情况下使用 panel.add(new JTextField(text).setEditable(false));
之类的方法将其设置为不可编辑?
可以这样做,但您仍然不应该这样做。
panel.add(new JTextField(text){{setEditable(false);}});
这将创建一个匿名 class,在初始化块中将其设置为不可编辑。
虽然这样做被认为是不好的做法。你应该把它分成多行,或者写一个方法来做。这样代码将更易于维护和阅读。
创建合适的工厂方法:
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;
}
}
我们可以在 Java 中像这样 panel.add(new JTextField(text));
在一行中将可编辑的 JTextField 添加到面板。有没有一种标准的方法可以在不编写我们自己的方法的情况下使用 panel.add(new JTextField(text).setEditable(false));
之类的方法将其设置为不可编辑?
可以这样做,但您仍然不应该这样做。
panel.add(new JTextField(text){{setEditable(false);}});
这将创建一个匿名 class,在初始化块中将其设置为不可编辑。
虽然这样做被认为是不好的做法。你应该把它分成多行,或者写一个方法来做。这样代码将更易于维护和阅读。
创建合适的工厂方法:
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;
}
}