2012-10-05 105 views
4

我遇到了這個問題:我可以以某種方式向JPanel添加一個虛線(或虛線,無論)邊框嗎?Java將一個虛線或虛線邊框添加到一個JPanel

我搜索了SO問題,但似乎沒有人問過這個問題。

我想知道是否有任何類使用。實際上我正在使用:

myPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK)); 

很明顯,這是一個標準的類,只給出幾個標準邊界,沒有人對我有用。

+0

看看[MatteBorder(http://docs.oracle.com/javase/7/docs/api/javax/swing/border/MatteBorder。 html)和[如何使用邊框](http://docs.oracle.com/javase/tutorial/uiswing/components/border.html)舉例 – MadProgrammer

+0

http://docs.oracle.com/javase/tutorial/uiswing /components/border.html#custom –

回答

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); 
    } 
}