JOptionPane image
Dla każdego, kto ma problem z obrazem, znalazłem/dostosowałem rozwiązanie. W moim systemie uzyskałem ten wynik, niezależnie od tego, czy użyłem rozwiązania UIManager, jak inni napisali, czy zrobiłem JDialog i użyłem jd.getContentPane(). SetBackground (Color.white). Więc tutaj jest obejście wymyśliłem, gdzie pętla rekurencyjnie przez każdego składnika w JOptionPane i ustawić każdy JPanel kolor tła:
private void getComponents(Container c){
Component[] m = c.getComponents();
for(int i = 0; i < m.length; i++){
if(m[i].getClass().getName() == "javax.swing.JPanel")
m[i].setBackground(Color.white);
if(c.getClass().isInstance(m[i]));
getComponents((Container)m[i]);
}
}
W kodzie, w którym chcesz mieć komunikat wyskakujący coś wzdłuż linii:
pane = new JOptionPane("Your message here",
JOptionPane.PLAIN_MESSAGE ,JOptionPane.DEFAULT_OPTION);
getComponents(pane);
pane.setBackground(Color.white);
jd = pane.createDialog(this, "Message");
jd.setVisible(true);
Gdzie JOptionPane pane
i JDialog jd
zostały wcześniej utworzone. Mam nadzieję, że to pomoże każdemu, kto miał ten problem.
+1 dla prostego sposobu – mKorbel
Należy pamiętać, że zmieni to tło dla wszystkich wystąpień. – mre
Czy mogę dodać do niego również przycisk niestandardowy? – itro