更改 JTabbedPane 侧视图的颜色
Change Color of JTabbedPanel side view
我正在使用 JTabbedPane 设计以下布局,并想更改突出显示部分的颜色。但我没有办法做到这一点。
我的问题
如何更改其背景颜色?
我尝试了什么?
我试过更改 JPanel 和 JTabbedPane 的 background-color
和 Foreground-color
,但没有成功。
我也尝试过此操作,同时将 Opaque = false
保留在属性中,但没有运气。
jTabbedPane1.setForegroundAt(1, Color.yellow);
jTabbedPane1.setForegroundAt(2, Color.yellow);
更新 1
String[] tabNames = {"Signin", "General", "Call Rate", "Audio Device","tab 5","tab 6","tab 7","tab 8","tab 9"};
for (int i = 0; i < tabNames.length; i++) {
JLabel lab = new JLabel("<html><font color=white>" + tabNames[i] + "</font></html>", SwingConstants.CENTER);
lab.setForeground(Color.red);
lab.setBackground(Color.BLUE);
lab.setPreferredSize(new Dimension(200, 50));
lab.setFont(new Font("Times New Roman", Font.BOLD, 22));
jTabbedPane1.setTabComponentAt(i, lab);
}
for (int i = 0; i < this.jTabbedPane1.getTabCount(); i++) {
jTabbedPane1.setBackgroundAt(i,Color.DARK_GRAY);
}
我尝试添加 JLabel
来更改出现我的选项卡名称的组件的大小,然后尝试设置 setBackgroundAt
。它既不工作也不 setBackground
和 setForeground
在 Label 上工作。
我的观感
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Settings.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
基本逻辑是:
JPanel tab1 = new JPanel();
tab1.background( Color.RED );
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.add(tab1, "Tab1");
JPanel parent = new JPanel( new BorderLayout() );
parent.setBackground( Color.GREEN );
parent.add( tabbedPane );
frame.add( parent );
现在选项卡占用的区域将具有 "parent" 面板的背景颜色。
如果这不起作用,则说明您遇到了外观问题。
解决方案
更改外观后问题已解决
我正在使用 JTabbedPane 设计以下布局,并想更改突出显示部分的颜色。但我没有办法做到这一点。
我的问题
如何更改其背景颜色?
我尝试了什么?
我试过更改 JPanel 和 JTabbedPane 的 background-color
和 Foreground-color
,但没有成功。
我也尝试过此操作,同时将 Opaque = false
保留在属性中,但没有运气。
jTabbedPane1.setForegroundAt(1, Color.yellow);
jTabbedPane1.setForegroundAt(2, Color.yellow);
更新 1
String[] tabNames = {"Signin", "General", "Call Rate", "Audio Device","tab 5","tab 6","tab 7","tab 8","tab 9"};
for (int i = 0; i < tabNames.length; i++) {
JLabel lab = new JLabel("<html><font color=white>" + tabNames[i] + "</font></html>", SwingConstants.CENTER);
lab.setForeground(Color.red);
lab.setBackground(Color.BLUE);
lab.setPreferredSize(new Dimension(200, 50));
lab.setFont(new Font("Times New Roman", Font.BOLD, 22));
jTabbedPane1.setTabComponentAt(i, lab);
}
for (int i = 0; i < this.jTabbedPane1.getTabCount(); i++) {
jTabbedPane1.setBackgroundAt(i,Color.DARK_GRAY);
}
我尝试添加 JLabel
来更改出现我的选项卡名称的组件的大小,然后尝试设置 setBackgroundAt
。它既不工作也不 setBackground
和 setForeground
在 Label 上工作。
我的观感
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Settings.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
基本逻辑是:
JPanel tab1 = new JPanel();
tab1.background( Color.RED );
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.add(tab1, "Tab1");
JPanel parent = new JPanel( new BorderLayout() );
parent.setBackground( Color.GREEN );
parent.add( tabbedPane );
frame.add( parent );
现在选项卡占用的区域将具有 "parent" 面板的背景颜色。
如果这不起作用,则说明您遇到了外观问题。
解决方案 更改外观后问题已解决