我目前有一个继承自javax.swing.border.Border
类的DropShadowBorder
类,这是SwingX
库中的一个常规边框实例。我想在我的无装饰JFrame
周围绘制此边框。我目前正在使用以下方法在我的JFrame
内设置边框:
DropShadowBorder b = new DropShadowBorder(Color.BLACK, 0, 10, 0.2f, 10, true, true, true, true);
this.getRootPane().setBorder(b);
注意:我正在使用框架的根面板来绘制边框,因为框架本身不支持边框。
问题在于边框是在组件本身内部绘制的,如下图所示,阴影边框在框架本身的边界内部绘制:
注意:(阴影)边框是在框架内部绘制的,而不是在框架外部。
无论使用何种边框,所有边框都会在JFrame
本身内部绘制。
我的问题是:是否可能在框架周围绘制任何边框,而不仅仅是在边框范围内部绘制?
解决此问题的一种方法是创建一个不同的无装饰全屏窗口,其为透明的,将普通窗口放在其上方。这个全屏窗口用于绘制阴影,因此阴影不需要在框架自身中绘制。这是获得类似结果的解决方案,但这不是我想要的。我想在框架外绘制边框。这种解决方案通常会引起其他问题。
this.getContentPane().setBorder(b);
,但更好的做法是在JPanel
上使用边框。 - mKorbelJFrame
添加阴影。目前,我有一个边框,它会像您在我的问题中看到的图片一样创建阴影。问题是这些边框是在组件内部绘制的。例如,在该图像上,边框是在框架边界的内部绘制的。有没有办法将此阴影边框绘制在框架的外部? 注意:我已更新问题,以使所有内容更加清晰。 - Tim Visée