0

我是 intellij idea 和 jFormDesigner 的新手。我想测试我的应用程序。我将 jFormDesigner 文件添加到我的项目中,创建了表单并添加了简单的按钮和文本区域。我为按钮添加了鼠标单击事件,但我不知道如何测试它。

这是事件处理程序:

private void startButtonMouseClicked(MouseEvent e) {
    resultTextField.setText("hello!");
}

这里是由intellijidea生成的代码:

public class SysJournalForm extends JFrame {
    public SysJournalForm() {
        initComponents();
    }

    public static void main(String [] args)
    {
    }

    private void startButtonMouseClicked(MouseEvent e) {
        resultTextField.setText("hello!");
    }

    private void initComponents() {
        // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
        // Generated using JFormDesigner Evaluation license - Vadim Mirgorod
        scrollPane1 = new JScrollPane();
        resultTextField = new JTextPane();
        startButton = new JButton();
        stopButton = new JButton();

        //======== this ========
        Container contentPane = getContentPane();
        contentPane.setLayout(null);

        //======== scrollPane1 ========
        {

            //---- resultTextField ----
            resultTextField.setText("test");
            scrollPane1.setViewportView(resultTextField);
        }
        contentPane.add(scrollPane1);
        scrollPane1.setBounds(5, 5, 530, 295);

        //---- startButton ----
        startButton.setText("\u0441\u0442\u0430\u0440\u0442");
        startButton.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                startButtonMouseClicked(e);
            }
        });
        contentPane.add(startButton);
        startButton.setBounds(5, 305, 130, startButton.getPreferredSize().height);

        //---- stopButton ----
        stopButton.setText("\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c");
        contentPane.add(stopButton);
        stopButton.setBounds(140, 305, 130, stopButton.getPreferredSize().height);

        { // compute preferred size
            Dimension preferredSize = new Dimension();
            for(int i = 0; i < contentPane.getComponentCount(); i++) {
                Rectangle bounds = contentPane.getComponent(i).getBounds();
                preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
                preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
            }
            Insets insets = contentPane.getInsets();
            preferredSize.width += insets.right;
            preferredSize.height += insets.bottom;
            contentPane.setMinimumSize(preferredSize);
            contentPane.setPreferredSize(preferredSize);
        }
        pack();
        setLocationRelativeTo(getOwner());
        // JFormDesigner - End of component initialization  //GEN-END:initComponents
    }

    // JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
    // Generated using JFormDesigner Evaluation license - Vadim Mirgorod
    private JScrollPane scrollPane1;
    private JTextPane resultTextField;
    private JButton startButton;
    private JButton stopButton;
    // JFormDesigner - End of variables declaration  //GEN-END:variables
}

intellij idea 和 jFromDesigner 项目

当我单击 jFormDesigner 表单中的测试表单时,表单可以工作但没有事件。如何测试事件?

4

3 回答 3

1

对于JButton有没有更好的使用

1)整个Swing JComponents的Swing Action非常可扩展的解决方法

2)(最常见的)ActionListener

因为

3)我认为MouseListener是错误的Swing Listener for JButton

于 2012-05-02T21:32:08.053 回答
0

你为什么不用模拟测试它?那里有很多模拟框架。你可以使用 Mockito、JMock、JMockit 等等...... Mockito 将是一个好的开始。如果您想实际模拟 GUI 操作……那是另一个领域。我建议你先模拟它,这样测试它。

此外,该表单不是由 Intellij Idea 生成的,而是由 JFormDesigner 生成的——您可以使用它来抽象 GUI,而不是将其绑定到特定的 IDE——这是一个好主意。

另外,如果你要使用很多 Swing 组件,我建议你使用 MVC 模式- http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller - 它应该简化测试,维护和一般简化你的表格。

于 2012-05-02T21:48:07.543 回答
0

您是否曾经将复选框标记为“自定义创建”?当您为组件添加自定义代码时,在本例中为 JButton,您必须在其属性检查器中标记此选项。

于 2016-02-25T19:17:20.673 回答