Quando utilizzo un JComboBox su Windows 7, i quattro angoli hanno ciascuno un pixel che non corrisponde al colore di sfondo del componente principale.JComboBox su Windows 7 presenta artefatti di rendering
In Windows 8 questo problema non si verifica (anche se ciò potrebbe essere dovuto al fatto che in Windows 8, JComboBox è reso come un rettangolo perfetto). Né accade su OS X.
Cosa posso fare per fare in modo che i pixel dell'angolo lascino passare il colore di sfondo del componente principale?
Ecco un'immagine che mostra il problema:
Ecco un esempio di codice autonomo che sto utilizzando:
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);
}
});
}
}
conosco questo problema ... ma ho pensato che sarebbe stato normale. forse devi impostare tutti i colori di sfondo dei componenti (incluso il combobox) sullo stesso colore. – Rubinum
Cosa si è provato con 'UIManager' [predefinito] (http://stackoverflow.com/a/1197350/230513) in' WindowsLookAndFeel'? – trashgod
@trashgod purtroppo questo è di default in Win7, solo per sovrascrivere i Bordi, problema comune da Win Vista + Aero – mKorbel