我正在尝试仅为面板创建一个dashborder(在java 7之前),但它也适用于面板中的所有组件.有谁知道为什么?
public class Box extends JPanel {
public Box() {
super();
DashedBorder dashedBorder = new DashedBorder();
this.setBorder(new TitledBorder(dashedBorder, "title", TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION));
this.setLayout(new GridLayout(5, 1));
for (int i = 1; i <= 15; i++) {
this.add(new JCheckBox("" + i));
}
}
class DashedBorder extends AbstractBorder {
@Override
public void paintBorder(Component comp, Graphics g, int x, int y, int w, int h) {
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.black);
g2d.setStroke(new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 5 }, 0));
g2d.drawRect(x, …Run Code Online (Sandbox Code Playgroud)