【发布时间】:2010-04-26 21:07:23
【问题描述】:
在我的两个 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 应用程序的最佳方式吗?如果是这样,我可以使用什么技术来确保这种类型的构造函数是有组织和可维护的?如果没有,在 java 中将 JFrame 放在一起的推荐方法是什么?
【问题讨论】:
标签: java swing constructor jframe