Почему TabbedPane теряет свой цвет фона при применении setLookAndFeel?
Не могу понять, почему при применении setLookAndFeel для java-приложения вкладка tabbedPane теряет фоновый набор, который я установил ранее.
Перед применением setLookAndFeel:
После применения setLookAndFeel:
Это мой код:
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextPane;
import javax.swing.UIManager;
public class CoocHelpPanel {
private JFrame frame;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
CoocHelpPanel window = new CoocHelpPanel();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public CoocHelpPanel() {
initialize();
frame.setVisible(true);
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setTitle("TEST TAB COLOR");
frame.setResizable(false);
frame.getContentPane().setBackground(Color.WHITE);
frame.setBounds(100, 100, 200, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
tabbedPane.setBounds(10, 10, 965, 855);
frame.getContentPane().add(tabbedPane);
JPanel panel = new JPanel();
tabbedPane.addTab("TAB 1 - AAAA", null, panel, null);
tabbedPane.setBackgroundAt(0, Color.red);
panel.setLayout(null);
JPanel panel_1 = new JPanel();
tabbedPane.addTab("TAB 2 - BBBB", null, panel_1, null);
tabbedPane.setBackgroundAt(1, Color.red);
panel_1.setLayout(null);
}
}
1 ответ
Если вы посмотрите на javadoc setBackgroundAt, вы увидите:
Это зависит от внешнего вида, чтобы почитать это свойство, некоторые могут проигнорировать его.
WindowsLookAndFeel не соблюдает, по умолчанию (металл?) Делает. Вот почему.