GUI中的java惰性初始化与急切初始化
我只是想知道在框架中创建组件时应该使用哪种类型的初始化
假设我有一个包含几个按钮的框架:
public class MainFrame extends JFrame {
private JTextField dynamicText; // accessible
public MainFrame() {
initComponents()
}
private void initComponents() {
dynamicText = getText();
JButton open = createButton();
JButton close = createButton();
close.setEnabled(false);
add(open);
add(close);
setVisible(true);
}
private JButton createButton() {
JButton button = new JButton();
// some customizations, like size, icons etc.
return button;
}
private JTextField getText() {
if (this.dynamicText== null) {
this.dynamicText= new JTextField();
// some customization
}
return this.dynamicText;
}
public void updateText() {
// code to update dynamicText
}
}
这是一个好方法吗
# 1 楼答案
您需要考虑以下因素来决定最佳策略:
# 2 楼答案
选择取决于您的显示要求和初始化延迟。为了拥有最好的用户体验,一般的建议是考虑在需要时填充或不立即显示的组件中的惰性初始化。否则,为了简单起见,请坚持使用即时初始化