0

1> JframeにJButtonがあります。

2> JButtonをクリックすると、別のJFrameの新しいインスタンスが開きます。

問題は、上記のJbuttonでキーが非常に速く押された場合です。同じJFrameの2つのインスタンスが開きます。

これらのフレームを開く必要があります。私が読んだように、Jframesを使用しない他のオプションがあることを私は知っています。

setMultiClickThreshHold('time in miliseconds')によって、MouceのDoulblクリックのこの問題を解決することができました。しかし、それはマウスに対してのみ機能しました。

私がグーグルで得た他のいくつかのものを試しましたが、どれもうまくいきませんでした。この問題を解決する他の方法はありますか?

4

1 に答える 1

2

アクションがトリガーされる頻度/迅速さを完全に制御するには、アクションを実装して、actionPerformedでそれ自体を無効にします。何かのようなもの:

singlePerform = new AbstractAction("DoSomthing") {

    @Override
    public void actionPerformed(ActionEvent e) {
        setEnabled(false);
        doSomething();
    }
};
JButton button = new JButton(singlePerform);

doSomethingが再びトリガーされても安全な場合は、アクションを再度有効にします。

singlePerform.setEnabled(true);     
于 2013-01-22T12:48:42.233 に答える