2

私はイベントのリッスンと GUI にまったく慣れていないので、これを理解するのに苦労しています。

3 つのコンポーネントを追加した JTabbedPane があります。これらのコンポーネントは JToolBars であり、JTabbedPane からフローティング ウィンドウにドラッグすることができます。これにより、タブ付きペインからタブが削除されます。JToolBar をドラッグしてペインに戻すと、タブが再作成されます。ただし、現在は名前が正しくありません。名前は、ツールバーがドッキングされた TabbedPane のどちら側に対応します。北、南、東、または西。

JToolBar が再ドッキングされたことを検出し、タブのタイトルを更新する適切な方法を誰かが推奨できますか? これまでのところ、tabbedPane に変更リスナーを実装しましたが、適切なイベントを解決できません。

乾杯。

解決済み: 解決策は、ContainerListener を使用して、実装された componentAdded メソッドを通じて追加されたコンポーネントを検出することでした。コンポーネントが JTabbedPane に追加されたとき、.setName() で設定されたコンポーネント名でタブ名を更新するメソッドを呼び出しました。

public void componentAdded(ContainerEvent added) {
    updateTabs();
}

public void updateTabs() {
    for (int i = 0; i < tabbedPane.getComponents().length; i++) {
        tabbedPane.setTitleAt(i,
                tabbedPane.getComponents()[i].getName());
    }
}
4

1 に答える 1

1

解決策は、ContainerListener を使用して、実装された componentAdded メソッドを通じて追加されたコンポーネントを検出することでした。コンポーネントが JTabbedPane に追加されたとき、.setName() で設定されたコンポーネント名でタブ名を更新するメソッドを呼び出しました。

public void componentAdded(ContainerEvent added) {
    updateTabs();
}

public void updateTabs() {
    for (int i = 0; i < tabbedPane.getComponents().length; i++) {
        tabbedPane.setTitleAt(i,
                tabbedPane.getComponents()[i].getName());
    }
}
于 2012-11-18T10:08:32.970 に答える