0
我在GUI上有按钮,可以在Selenium中单击时执行测试。它们只能连续运行,目前已添加到EventQueue
。我希望这样,如果点击一个按钮并执行一个测试,它将禁用其他按钮,以便其他测试不能添加到队列中。在Swing中禁用GUI上的按钮
目前的按钮看起来像:
Test1 = new JButton("Test1 ");
Test1.setLocation(290, 30);
Test1.setSize(120, 30);
Test1.addActionListener(this);
Test1.addMouseListener(new MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
if (Test1.isEnabled()) {
Test1.setEnabled(false);
errorLabel.setText("");
service.submit(()->{
Result result = JUnitCore.runClasses(Test1.class);
EventQueue.invokeLater(()->{
errorMessageDisplay(result);
Test1.setEnabled(true);
});
});
}
}
});
buttonPanel.add(Test1);
我已经使用了EventQueue
,因为它可以让我在GUI重置更新通过/失败的错误消息。
我该如何做到最好?
什么是你的代码的问题吗?如果你不需要禁用的效果,也就是说,如果一个按钮是可点击的而该动作什么都不做,你可以使用共享信号量(例如锁定对象)。 – Thomas
你不应该以这种方式使用MouseListeners。这是ActionListeners的用途。首先,MouseListeners会忽略一个按钮是否被禁用,而ActionListeners则不会。 –
我的回答对你有帮助吗?给我一些反馈,这样我可以改进我的答案。 – xenteros