Java将一个虚线或虚线边框添加到JPanel

Gia*_*rco 5 java border jpanel dotted-line

我遇到了这个问题:在某种程度上,我可以在JPanel中添加一个虚线(或虚线,无关)边框吗?

我搜索了SO问题,但似乎没有人问过这个问题.

我想知道是否有任何课程可供使用.实际上我正在使用:

myPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
Run Code Online (Sandbox Code Playgroud)

显然这是一个标准类,只提供几个标准边框,没有人对我有用.

Tim*_*mos 11

从Java 7开始,您可以使用BorderFactory.createDashedBorder(Paint).

在Java 7之前,您必须自己定义此边框.然后你可以使用这个自编边框:

private class DashedBorder extends AbstractBorder {
    @Override
    public void paintBorder(Component comp, Graphics g, int x, int y, int w, int h) {
        Graphics2D gg = (Graphics2D) g;
        gg.setColor(Color.GRAY);
        gg.setStroke(new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[]{1}, 0));
        gg.drawRect(x, y, w - 1, h - 1);
    }
}
Run Code Online (Sandbox Code Playgroud)


gob*_*dor 5

你在找BorderFactory.createDashedBorder(Paint).

  • 这是一个很好的答案,但请注明上述方法自 Java 1.7 起就存在于 JDK 中。 (2认同)
  • 同样,标准的Color类实现了Paint,所以不要试图解析函数签名。 (2认同)