Wenn ich eine JComboBox unter Windows 7 verwenden, haben die vier Ecken jeweils ein Pixel, das nicht mit der Hintergrundfarbe der übergeordneten Komponente übereinstimmt.JComboBox unter Windows 7 hat Renderartefakte
In Windows 8 tritt dieses Problem nicht auf (obwohl dies daran liegen könnte, dass die JComboBox in Windows 8 als perfektes Rechteck dargestellt wird). Es passiert auch unter OS X nicht.
Was kann ich tun, damit die Eckpixel die Hintergrundfarbe der Elternkomponente durchlassen?
Hier ist ein Bild, das das Problem:
Hier ist eine in sich geschlossene Codebeispiel Ich verwende:
import com.sun.java.swing.plaf.windows.WindowsLookAndFeel;
import javax.swing.*;
import java.awt.*;
public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(new WindowsLookAndFeel());
} catch (Exception e) {
e.printStackTrace();
}
JPanel contentPane = new JPanel();
contentPane.setBackground(Color.WHITE);
JComboBox<String> comboBox = new JComboBox<String>(new String[]{"One", "Two"});
contentPane.add(comboBox);
JFrame frame = new JFrame("JComboBox Test");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setContentPane(contentPane);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
Ich kenne dieses Problem ... aber ich dachte, es wäre normal. Vielleicht müssen Sie alle Hintergrundfarben der Komponenten (einschließlich der Combobox) auf die gleiche Farbe einstellen. – Rubinum
Was "UIManager" [defaults] (http://stackoverflow.com/a/1197350/230513) in "WindowsLookAndFeel" haben Sie versucht? – trashgod
@trashgod leider dies ist Standard in Win7, nur um Grenzen zu überschreiben, häufiges Problem von Win Vista + Aero – mKorbel