小编use*_*551的帖子

为什么我的自定义边框适用于所有组件?

我正在尝试仅为面板创建一个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)

java swing border

4
推荐指数
1
解决办法
93
查看次数

标签 统计

border ×1

java ×1

swing ×1