-
Bug
-
Resolution: Fixed
-
P4
-
1.1.5, 1.2.0
-
None
-
1.2beta2
-
generic, x86
-
generic, windows_95
-
Verified
When setBorder(new LineBorder(Color.blue, 2)) is invoked on a JCheckBox
or on a JRadioButton, the border of the checkbox/radiobutton is not
set to a blue line border.
The following application demonstrates this.
============================================================================
import com.sun.java.swing.*;
import com.sun.java.swing.border.LineBorder;
import com.sun.java.swing.basic.BasicBezelBorder;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Label;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
/**
* An application that displays a bordered JButton, a bordered JCheckBox,
* a bordered JRadioButton, and a "Set Border" checkbox.
* Selecting the "Set Border" checkbox should cause the JButton, JCheckBox,
* and JRadioButton to become bordered with a blue line border.
*/
public class borderbug extends JBufferedPane {
static JFrame frame;
static JButton button = new JButton("JButton");
static JCheckBox checkbox = new JCheckBox("JCheckBox");
static JRadioButton radiobutton = new JRadioButton("JRadioButton");
static JCheckBox setborder = new JCheckBox("Set Border");
public borderbug() {
super(true);
// Register a listener for the setborder checkbox
setborder.addItemListener(new CheckBoxListener());
button.setBorderPainted(true);
checkbox.setBorderPainted(true);
radiobutton.setBorderPainted(true);
setLayout(new BorderLayout());
Box container1 = new Box(BoxLayout.Y_AXIS);
Box container2 = new Box(BoxLayout.Y_AXIS);
container1.add(container1.createVerticalStrut(10));
container1.add(setborder);
container2.add(container2.createVerticalStrut(10));
container2.add(button);
container2.add(container2.createVerticalStrut(15));
container2.add(checkbox);
container2.add(container2.createVerticalStrut(15));
container2.add(radiobutton);
container2.add(container2.createVerticalStrut(15));
add(BorderLayout.WEST, container1);
add(BorderLayout.EAST, container2);
add(BorderLayout.SOUTH, new Label("Select checkbox on left to border components on right with a blue line border."));
}
/** Listens to the setborder checkbox */
class CheckBoxListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
if (setborder.isSelected()) {
button.setBorder(new LineBorder(Color.blue, 2));
checkbox.setBorder(new LineBorder(Color.blue, 2));
radiobutton.setBorder(new LineBorder(Color.blue, 2));
repaint();
System.out.println("\nButton border: " + button.getBorder());
System.out.println("Checkbox border: " + checkbox.getBorder());
System.out.println("Radiobutton border: " + radiobutton.getBorder());
}
else {
button.setBorder(new BasicBezelBorder());
checkbox.setBorder(new BasicBezelBorder());
radiobutton.setBorder(new BasicBezelBorder());
repaint();
System.out.println("\nButton border: " + button.getBorder());
System.out.println("Checkbox border: " + checkbox.getBorder());
System.out.println("Radiobutton border: " + radiobutton.getBorder());
}
}
}
public static void main(String s[]) {
WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
};
frame = new JFrame("borderbug");
frame.addWindowListener(l);
frame.add("Center", new borderbug());
frame.pack();
frame.setVisible(true);
System.out.println("Button border: " + button.getBorder());
System.out.println("Checkbox border: " + checkbox.getBorder());
System.out.println("Radiobutton border: " + radiobutton.getBorder());
}
}
==============================================================================