小编new*_*ite的帖子

JUnit在Java中测试GUI

我想为GUI编写测试用例.我想知道你如何模拟JButton的点击,或者你如何提取JTable的元素.

出于此目的,我构建了一个简单的GUI,如果单击该按钮并且JTextfield为空,则将计数增加1,但如果提供了数字,则计数将替换为JTextfield中的整数.当然我想使用正则表达式来确保输入JTextfield的文本实际上是一个整数,但让我们假设用户不会乱七八糟并输入一个非整数.此外,JLabel在JTable添加新行时更新当前计数.

这是代码:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;


public class sampleGUI extends JFrame implements ActionListener {
    private Integer previous_count;
    private Integer current_count;
    private JButton Button;
    private JTable table;
    private JTextField text;
    private DefaultTableModel model;
    private JScrollPane scroll;
    private JLabel label;

    public sampleGUI() {
        previous_count = null;
        current_count = 0;
        JFrame frame = new JFrame("Sample");
        JPanel panel = new JPanel();

        GroupLayout layout …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing unit-testing jtable

22
推荐指数
2
解决办法
3万
查看次数

使用Java中的GroupLayout构建GUI

我需要使用GroupLayout(而不是其他布局)构建GUI.GUI将如下所示:

----------------------------
| field 1  field 2  field 3 |

| FFIEEELLLDD4 FIELDDDDDD5  |

| FIEEEEEEEEEEEEEEELDDDD 6  |
_____________________________
Run Code Online (Sandbox Code Playgroud)

字段1 - 3各占1个长度,字段4和5各占1.5长度,字段6占3个长度.这三组在开始和结束时都是对齐的.

我一直在指这个http://docs.oracle.com/javase/tutorial/uiswing/layout/group.html.

为简单起见,我将使用JLabel作为字段的占位符.

到目前为止,这是我的代码,我没有运气获得我想要的GUI.

public class RecorderGUI extends JFrame {
    private final JLabel one;
    private final JLabel two;
    private final JLabel three;
    private final JLabel four;
    private final JLabel five;
    private final JLabel six;
public RecorderGUI() {
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    GroupLayout layout = new GroupLayout(panel);
    panel.setLayout(layout);

    one = new …
Run Code Online (Sandbox Code Playgroud)

java swing grouplayout

5
推荐指数
1
解决办法
1万
查看次数

JTable 在 Java 中自动滚动到底部

每当我添加新列并显示最后 10 行时,我都希望 JTable 自动滚动到底部。但是,我可以选择滚动到我想要的任何地方(鼠标监听器?)。你知道怎么做吗?这是我到目前为止的代码。它构建一个 JTable 并为每次在 JButton 上单击鼠标添加一个新行。

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;

public class sampleGUI extends JFrame implements ActionListener {
    private JButton incrementButton;
    private JTable table;
    private DefaultTableModel model;
    private int count;
    private JScrollPane scroll;


    public sampleGUI() {
        JFrame frame = new JFrame("sample frame");
        frame.setLayout(new BorderLayout());

        incrementButton = new JButton("Increase the count!");

        model = new DefaultTableModel();
        model.addColumn("column 1");
        table = new JTable(model);
        frame.add(incrementButton, BorderLayout.NORTH);
        scroll = new …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jtable jscrollpane

1
推荐指数
1
解决办法
7034
查看次数