我正在使用一些JCheckButtons(粗斜体)创建GUI,当通过使用动作侦听器进行选择时,这些按钮会将文本字段中的文本变为粗体,斜体或两者。这是我在动作侦听器方法中实现此功能的方式(这是针对粗体方法,对于斜体,粗体和斜体,我也有类似的方法)。
class Bold implements ActionListener {
private final FontSetter fontSetter;
private final JTextField textfield;
Bold(FontSetter fontSetter, JTextField textfield) {
this.fontSetter = fontSetter;
this.textfield = textfield;
}
Font font = new Font(textfield.getText(), Font.BOLD,12);
public void actionPerformed(ActionEvent e) {
fontSetter.setBold();
textfield.setFont(font);
}
}
错误:最终字段空白文本字段可能尚未初始化,该如何解决?
您必须先初始化textfield
变量,然后才能使用它。由于您已定义font
为另一个实例变量,因此textfield
可能尚未初始化对它的引用。
一种可能的方法是初始化font
构造,因为它依赖于textfield
:
private final JTextField fontSetter;
private final JTextField textfield;
private final Font font;
Bold(JTextField fontSetter, JTextField textfield) {
this.fontSetter = fontSetter;
this.textfield = textfield;
this.font = new Font(textfield.getText(), Font.BOLD, 12);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句