我如何编写自己的ListSelectionEvent?

问题描述 投票:0回答:1

我制作了一个包含列表的GUI。在该列表中进行选择时,通过用户单击列表选择,将执行某些操作。我希望能够测试该动作,而不必通过GUI进行实际选择。例如,我有我的GUI.java和单独的GUITest.java。我想做类似GUITest.java

的事情

valueChanged()是Java接口ListSelectionListener中的方法,并且仅接受ListSelectionEvent类型的参数。因此,最终,我将如何创建自己的ListSelectionEvent变量来保存选择“ a”的操作?

java jlist listselectionlistener
1个回答
0
投票

我刚刚想到的是,它可以轻松完成相同的任务。在列表中进行选择时,方法valueChanged(ListSelectionEvent e)自动运行。考虑到这一点,我将能够使用setSelectedIndex(index)方法测试被选择的“ a”的动作。 valueChanged(...)将检测到调用所做的更改:list.setSelectedIndex(...)

public class GUI implements ListSelectionListener{
    String[] letters = {"a", "b", "c"};
    JList list = new JList(letters);
    list.addListSelectionListener(this);

    public void valueChanged(ListSelectionEvent e){
        if(list.getSelectedValue().equals("a")){
            System.out.println("Success");
        }else{
            System.out.println("Fail");
        }
    }
}

然后从我的测试班

public class GUITest{
    @test
    void testListSelection(){
        GUI t = new GUI();
        t.list.setSelectedIndex(0);
        assert(whatever test your doing);
    }
}

在JUnit测试中覆盖了“ a”作为所选值的if语句。

© www.soinside.com 2019 - 2024. All rights reserved.