我制作了一个功能相当简单的Swing应用程序.然而,在我看来,它所包含的代码变得相当大而且非常混乱.所有swing组件和操作都在一个文件中.因此,例如,如果我要创建一个具有更多功能的更大的应用程序,那么代码将很难通过.
所以我的问题是如何建立一个良好的代码结构.或者,如果有一个很好的网页,我可以阅读它,如果可能的话,一些代码示例.我已经检查了Sun关于Swing的教程,但是他们已经展示了一些相当简单的例子.
更新:我有一段时间思考并检查一些例子.我不知道我的MVC模式是否正确.无论如何,我的想法是将每个JFrame分隔到他们自己的类文件中.之后我有一个MainFrame,它是应用程序的主窗口.从那个JFrame我创建了每个JFrame的一个实例.并使用Actions从MainFrame调用这些框架.我不知道这是不是一个好主意.然而,无论如何,它使代码更容易阅读.
这是我的意思的一个例子
class Main implements ActionListener {
private JFrame frame = new JFrame();
private JButton button1 = new JButton();
private JPanel panel = new JPanel();
private FirstFrame frame1 = new FirstFrame();
private SecondFrame frame2 = new SecondFrame();
private ThirdFrame frame3 = new ThirdFrame();
public Main() {
button1.addActionListener(this);
}
public createGUI() {
frame.setTitle("Main");
frame.setSize(400,300);
panel.add(button);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
}
public static void main(String args[]) {
new Main().createGUI();
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == button1)
{
frame1.enable();
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用模型 - 视图 - 控制器设计模式.它涉及将用户界面代码与业务逻辑分离.
编辑:
由于OP正在寻找有组织的代码而不是灵活的设计,我已从我的答案中删除了NetBeans UI Designer部分.
考虑到每个应用程序都有相同的问题,组织任何重要大小的用户界面代码是一个问题,关于它的写得令人惊讶.有一些技术可以帮助:
基本的设计技术已经存在了很长时间,并且很好理解,但是在更大规模上应用这些技术似乎是针对每个应用单独设计的.
我看到有效应用的一种方法是将事件,监听器,操作等分离到它们自己的类中,并按类型将它们组织成包,或者在包之间使用一致的命名约定,以便组件及其关联的类是容易识别(XDialog,XDialogMouseListener,XDialogCancelAction等).
另一种方法是查看一些大型开源应用程序(Eclipse,Firefox,...),并了解它们如何组织GUI代码.
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |