5

私は、ワークフロー用の複数のタブ付きペインを備えた複雑なデスクトップ アプリに取り組んでおり、それぞれに異なるボタン、ラベル、およびその他の UI 要素が詰め込まれています。それぞれに定義されたニーモニックが必要であり、定義する文字が不足しているため、これらはしばしば競合します。

Windows では、2 つのコントロールに同じニーモニックが定義されている場合、それを押すとそれらの間で循環し、キーを放すとアクティブになることに気付きました。Swing では、同じキーでニーモニックを 2 つ定義すると、単純にニーモニックがアクティブになりません。

これに対する回避策はありますか?

4

1 に答える 1

1

私の提案は、 a を使用し、KeyListener表示されているタブに基づいてアクションを区別することです。

擬似コード:

public void keyPressed(KeyEvent e){
    //assuming 'O' activates Open button on two different tabs
    if(key == 'O'){
        if(activeTab == tab1)
            doStuff1();
        else if(activeTab == tab2)
            doStuff2();
    }
}

実際のコードで機能させる方法を見つけることができます。

于 2012-10-03T21:26:39.123 に答える