Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java SwingのJTabbedPaneで選択中のタブを強調表示する方法

JTabbedPaneとは

JTabbedPaneは、JComponentクラスのサブクラスで、複数のパネルに簡単にアクセスできるようにするSwingコンポーネントです。各タブには1つのコンポーネントが関連付けられており、そのタブを選択すると対応するコンポーネントが表示されます。また、JTabbedPaneはタブが選択されたときChangeListenerインターフェースを発生させることができます。

選択中のタブを強調表示する方法

選択されたタブを特定の色で強調表示したい場合は、UIManagerクラスの静的メソッドput()を使用します。「TabbedPane.selected」というキーに対して任意のColorオブジェクトを設定するだけで、選択中のタブの背景色を簡単に変更できます。

ポイント

  • UIManager.put("TabbedPane.selected", Color.gray)のように、JTabbedPaneを生成する前に呼び出す必要があります。
  • 色はColorクラスの定数(Color.grayなど)でも、独自のRGB値でも指定可能です。

コード例

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SelectedJTabbedPaneTest extends JFrame implements ActionListener {
    private JTabbedPane tabbedPane;
    int tab = 0;

    public SelectedJTabbedPaneTest() {
        setTitle("SelectedJTabbedPane Test");
        setLayout(new BorderLayout());
        // 選択されたタブの色をグレーに設定
        UIManager.put("TabbedPane.selected", Color.gray);
        tabbedPane = new JTabbedPane();
        createTab();
        add(tabbedPane, BorderLayout.CENTER);
        setJMenuBar(createMenuBar());
        setSize(375, 250);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public JMenuBar createMenuBar() {
        JMenuBar menuBar = new JMenuBar();
        JMenu menu = new JMenu("JTabbedPane");
        JMenuItem menuItem = new JMenuItem("Create a new tab");
        menuItem.addActionListener(this);
        menu.add(menuItem);
        menuBar.add(menu);
        return menuBar;
    }

    public void actionPerformed(ActionEvent ae) {
        if (ae.getActionCommand().equals("Create a new tab")) {
            createTab();
        }
    }

    public void createTab() {
        tab++;
        tabbedPane.addTab("Tab " + tab, new JLabel("Tab " + tab));
    }

    public static void main(String []args) {
        new SelectedJTabbedPaneTest();
    }
}

実行結果

このプログラムを実行すると、現在選択されているタブがグレー色で強調表示されます。メニューから「Create a new tab」を選択すると新しいタブが追加され、タブを切り替えるたびに選択中のタブだけがグレーに変わることを確認できます。

  1. Javaで単一のJTabbedPaneに複数のタブを挿入する方法

    JTabbedPaneとはJTabbedPaneはJComponentクラスを拡張したコンポーネントで、一度に表示できるタブは1つだけです。各タブには1つのコンポーネントが関連付けられており、そのタブが選択されると対応するコンポーネントが表示されます。JTabbedPaneは、タブが選択された際にChangeListenerインターフェースを通じてイベントを発生させることができます。さらに、1つのJTabbedPaneに複数のタブを挿入することも可能です。JTabbedPaneの主なメソッドには、addTab()、fireStateChanged()、getTabPlacement()、set

  2. JavaでJPanelのpaintComponent()メソッドを実装する方法をわかりやすく解説

    JPanelはJavaにおける軽量コンテナであり、それ自体は不可視(インビジブル)なコンポーネントとして扱われます。デフォルトのレイアウトにはFlowLayoutが採用されています。JPanelを生成した後は、Containerクラスから継承されたadd()メソッドを呼び出すことで、ボタンやラベルなどの他のコンポーネントをJPanelオブジェクトに自由に追加できます。 paintComponent()メソッドとは このメソッドは、単なる背景色の描画にとどまらず、JPanel上に独自の図形や画像などを描画したい場合に必要となります。paintComponent()メソッドはすでにJPanelクラ