Je suis allé fou essayer de comprendre cela. J'essaie d'élimer un fond bleu clair qui apparaît dans un JTabbedPane. J'ai tout essayé et rien ne semble fonctionner.Contrôle de la couleur dans le volet à onglets Java
Voici mon code. Si vous l'exécutez, il affichera l'onglet, lorsqu'il est sélectionné avec un fond bleu clair et une bordure bleue en haut. Je veux contrôler cette couleur. Mais comment?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.plaf.ColorUIResource;
public class Main extends JFrame {
JTabbedPane tab=new JTabbedPane();
public Main() {
setSize(300,300);
setTitle("Test Tab pane");
tab.add("First",new myPanel("First"));
tab.add("Second",new myPanel("Second"));
tab.add("Third",new myPanel("Third"));
tab.add("Fourth",new myPanel("Fourth"));
tab.addChangeListener(new ChangeTab());
getContentPane().add(tab,BorderLayout.CENTER);
setVisible(true);
for(int i=0;i<tab.getTabCount();i++){
if(i != tab.getSelectedIndex())
tab.setBackgroundAt(i,Color.orange);
tab.setForeground(Color.BLACK);
}
tab.setOpaque(true);
UIManager.put("TabbedPane.contentAreaColor ",ColorUIResource.GREEN);
UIManager.put("TabbedPane.selected",ColorUIResource.GREEN);
UIManager.put("TabbedPane.background",ColorUIResource.GREEN);
UIManager.put("TabbedPane.shadow",ColorUIResource.GREEN);
}
public static void main(String[] args) {
Main main = new Main();
}
class ChangeTab implements ChangeListener{
public void stateChanged(ChangeEvent e){
tab.validate();
System.out.println(tab.getSelectedIndex());
for(int i=0;i<tab.getTabCount();i++){
if(i != tab.getSelectedIndex())
tab.setBackgroundAt(i,Color.orange);
}
}
}
class myPanel extends JPanel{
public myPanel(String str){
add(new JLabel(str));
}
}
}
Avez-vous essayé d'utiliser un LookAndFeel différent ou d'utiliser 'UIManager.put' avant d'afficher votre' JFrame'? –