U
ub
I have a JFrame that displays a big JLabel in the background and a
JCheckBox in the front.
When using the Windows L&F and I press the Alt-key the JLabel is
repainted but not the JCheckBox in front of it. As a consequence the
checkbox disappears. Forcing a repaint (e.g. by resizing the frame)
will make the checkbox re-appear.
When not using the Window L&F everything is fine.
Any suggestion how to work around this problem?
ub
Here the sourcecode:
-----
import java.awt.Color;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UnsupportedLookAndFeelException;
public class AltKeyRepaint {
public static void main(String args[]) throws ClassNotFoundException,
InstantiationException, IllegalAccessException,
UnsupportedLookAndFeelException {
// Use the System (i.e. "Windows") L&F
javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager
.getSystemLookAndFeelClassName());
// The frame to display the sample
JFrame frame = new JFrame("Frame");
frame.setSize(250, 200);
frame.getContentPane().setLayout(null);
// A big colored label in the background
JLabel label = new JLabel("A sample label in the background");
label.setBackground(Color.ORANGE);
label.setOpaque(true);
label.setBounds(5, 5, 200, 150);
// A check box on top of the background label
JCheckBox chkBox = new JCheckBox("a check box on top");
chkBox.setBounds(30, 30, 150, 20);
// Add the label and check box to the frame
frame.getContentPane().add(chkBox);
frame.getContentPane().add(label);
// display it
frame.show();
// Now pressing the ALT key will repaint the label, but not the
// check box, i.e. the check box disappears.
// Forcing a repaint (e.g. by resizing the frame) will make the
check
// box re-appear.
// Without the Windows L&F (first statement of function) everything
// will be fine.
}
}
JCheckBox in the front.
When using the Windows L&F and I press the Alt-key the JLabel is
repainted but not the JCheckBox in front of it. As a consequence the
checkbox disappears. Forcing a repaint (e.g. by resizing the frame)
will make the checkbox re-appear.
When not using the Window L&F everything is fine.
Any suggestion how to work around this problem?
ub
Here the sourcecode:
-----
import java.awt.Color;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UnsupportedLookAndFeelException;
public class AltKeyRepaint {
public static void main(String args[]) throws ClassNotFoundException,
InstantiationException, IllegalAccessException,
UnsupportedLookAndFeelException {
// Use the System (i.e. "Windows") L&F
javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager
.getSystemLookAndFeelClassName());
// The frame to display the sample
JFrame frame = new JFrame("Frame");
frame.setSize(250, 200);
frame.getContentPane().setLayout(null);
// A big colored label in the background
JLabel label = new JLabel("A sample label in the background");
label.setBackground(Color.ORANGE);
label.setOpaque(true);
label.setBounds(5, 5, 200, 150);
// A check box on top of the background label
JCheckBox chkBox = new JCheckBox("a check box on top");
chkBox.setBounds(30, 30, 150, 20);
// Add the label and check box to the frame
frame.getContentPane().add(chkBox);
frame.getContentPane().add(label);
// display it
frame.show();
// Now pressing the ALT key will repaint the label, but not the
// check box, i.e. the check box disappears.
// Forcing a repaint (e.g. by resizing the frame) will make the
check
// box re-appear.
// Without the Windows L&F (first statement of function) everything
// will be fine.
}
}