You can change individual dialogs:
You need a customJDialog and a custom JOptionPane. Buttons underline the first letter that matches the mnemonic. Change it to something that is not used. Rectangle is about button focus.
JDialog dialog = new JDialog();
JOptionPane pane = new JOptionPane("Some Message",
JOptionPane.PLAIN_MESSAGE, JOptionPane.YES_NO_OPTION);
List<JButton> list = SwingUtils.getDescendantsOfType(JButton.class, pane);
//this method is part of the SwingUtils. It is free to use. You can download it from the link.
pane.setBackground(Color.green); //this does not completely change the background. I am not sure how you can change it completely
for (JButton b : list) {
b.setMnemonic(0); //call it with an int or char that does not exist in your button.
b.setFocusable(false); //removes the rectangle
b.setBackground(Color.red);
//you can do more since you have direct access to the button
}
If you have no experience with java custom JOptionPane check this out for button actions: Pressing Yes/No on embedded JOptionPane has no effect
SwingUtil link:http://tips4java.wordpress.com/2008/11/13/swing-utils/
If you want to turn the code into library read: http://www.programcreek.com/2011/07/build-a-java-library-for-yourself/