在我的Java课程中,以及我们使用的书籍中,使用代码布置GUI通常涉及到JFrame的构造函数。这些书籍中的标准技术似乎是在构造函数中初始化所有组件并将它们添加到JFrame中,然后添加匿名事件处理程序来处理需要的事件,并且这也是我所学课程所倡导的。
这似乎很容易理解,并且在创建一个非常简单的GUI时也很容易使用,但在制作除了非常简单的GUI之外的任何东西时,似乎很快就会变得繁琐和笨重。以下是我所描述的一个小代码示例:
public class FooFrame extends JFrame {
JLabel inputLabel;
JTextField inputField;
JButton fooBtn;
JPanel fooPanel;
public FooFrame() {
super("Foo");
fooPanel = new JPanel();
fooPanel.setLayout(new FlowLayout());
inputLabel = new JLabel("Input stuff");
fooPanel.add(inputLabel);
inputField = new JTextField(20);
fooPanel.add(inputField);
fooBtn = new JButton("Do Foo");
fooBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//handle event
}
});
fooPanel.add(fooBtn);
add(fooPanel, BorderLayout.CENTER);
}
}
这种构造函数的使用方法是否是在Java中编写Swing应用程序的最佳方式?如果是,我可以采用哪些技术来确保这种构造函数的组织和可维护性?如果不是,那么推荐使用什么方法来拼凑一个JFrame?