私のプロジェクトで JTabbedPane を使用しており、アプリケーションのルック アンド フィールを変更しようとしています。ウィンドウのルック アンド フィール (およびその他のルック アンド フィール) を設定すると、すべてのボタン、チェック ボタンなどの外観が変更されますが、タブはデフォルトのスイング タブのように見えます。これがどのように見えるかの例です:
ボタンとチェックボックスは Windows コンポーネントのように見えますが、タブはデフォルトのスイングのように見えます。それが役立つ場合は、別のクラス ファイルで定義されている JTabbedPane のサブクラスを使用しています。私の質問は、JTabbedPane のタブを Windows タブのように見せるにはどうすればよいですか?
このコードは私のために問題をエミュレートします。タブはスイングとして表示されますが、ボタンは別の l&f として表示されます。
import javax.swing.*;
import java.awt.*;
public class TabbedFrame
{
private static JFrame window;
private static JPanel pane;
private static JTabbedPane tabs = new JTabbedPane();
public static void main(String[] vars)
{
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
} catch (Exception ee){
ee.printStackTrace();
}
window = new JFrame("tabs");
pane = new JPanel();
window.setSize(200, 300);
window.setLocation(100, 100);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setContentPane(pane);
Panel[] panes;
panes = new Panel[2];
panes[0] = new Panel();
panes[1] = new Panel();
panes[0].add(new Label("PANEL 1..................."));
panes[1].add(new Label("PANEL 2 ....."));
tabs.addTab("tab 1", panes[0]);
tabs.addTab("tab 2", panes[1]);
tabs.setSize(480, 640);
pane.add(tabs);
pane.add(new JButton("test"));
pane.add(new JCheckBox());
pane.add(new JRadioButton());
tabs.setBounds(20, 20, 200, 200);
window.setVisible(true);
}
}