5
タブのタイトルにアイコン "X"を表示して、タブを閉じることができますか? おかげJavaタブ区画:タイトルにアイコンを閉じる
タブのタイトルにアイコン "X"を表示して、タブを閉じることができますか? おかげJavaタブ区画:タイトルにアイコンを閉じる
私はHow to Use Tabbed Panes、のチュートリアルを見ている示唆してカスタムコンポーネントでタブと題したセクションまでスクロールします。
また、そのセクション内のexample indexリンクを見ると、サンプルコードが表示されます。
私は実際に自分自身の実装を作成しました。 :)
このような何か:
/* These need to be final so you can reference them in the MouseAdapter subclass
* later. I personally just passed them to a method to add the tab, with the
* parameters marked as final.
* i.e., public void addCloseableTab(final JTabbedPane tabbedPane, ...)
*/
final Component someComponent = ...; //Whatever component is being added
final JTabbedPane tabbedPane = new JTabbedPane();
//I had my own subclass of AbstractButton, but that's irrelevant in this case
JButton closeButton = new JButton("x");
/*
* titlePanel is initialized containing a JLabel with the tab title,
* and closeButton. (I don't recall the tabbed pane showing a title itself after
* setTabComponentAt() is called)
*/
JPanel titlePanel = ...;
tabbedPane.add(someComponent);
tabbedPane.setTabComponentAt(tabbedPane.indexOfComponent(someComponent), titlePanel);
closeButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
tabbedPane.remove(someComponent);
}
});
ああ、可能な欠点は、setTabComponentAtは()ので、これは以前のバージョンでは動作しません... Javaの6のようにのみ使用可能です。 – swilliams