我想要做的JFrame邊框透明的,所以我想這樣做,用我自己的邊框類...半透明的JFrame邊境
private class ShadowBorder extends AbstractBorder {
private static final int RADIUS = 30;
@Override
public boolean isBorderOpaque() {
return false;
}
@Override
public Insets getBorderInsets(Component c) {
return new Insets(RADIUS, RADIUS, RADIUS, RADIUS);
}
@Override
public Insets getBorderInsets(Component c, Insets insets) {
insets.top = RADIUS;
insets.left = RADIUS;
insets.bottom = RADIUS;
insets.right = RADIUS;
return insets;
}
@Override
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setColor(new Color(0x66000000, true));
g2d.fillRect(0, 0, width - RADIUS, RADIUS);
}
}
但邊框不是透明的決賽。邊界內部也有白色背景,但我不知道爲什麼(請參閱atach。image)。有任何想法嗎?
謝謝!
明白了,非常感謝! –
我已經嘗試過使用JRE 7這種方法,它不起作用(邊框有一些灰色背景)。在JRE 6中,它工作正常,但我需要在JRE 7上運行它。 –