0
Seleniumでクリックしたときにテストを実行するGUI上のボタンがあります。それらはシリアルでのみ実行でき、現在はEventQueue
に追加されています。ボタンをクリックしてテストを実行すると他のボタンが無効になり、他のテストをキューに追加できないようにしたいと思います。それは私がGUI上で更新合格/不合格のエラーメッセージをリセットすることを可能にするよう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
を使用しています
現在のボタンは次のようになります。
これをどのようにして最高に達成できますか?
:
場合、あなたはボタンの状態を維持したいが、それを無効にしない、次のコードは、解決策になるかもしれませんか?無効なエフェクトが必要ない場合、つまりボタンをクリックできるようにしても何もしないアクションがあれば、共有セマフォー(ロックオブジェクトなど)を使用できます。 – Thomas
このようにMouseListenersを使用しないでください。これがActionListenersの目的です。 1つは、ボタンが無効な場合はMouseListenersが無視し、ActionListenersは無効な場合は無視されます。 –
私の答えはあなたを助けましたか?私は私の答えを改善できるように私にいくつかのフィードバックをください。 – xenteros