JInternalFrame 底部阴影问题

JInternalFrame bottom shadow issue

我正在创建一个使用许多 JInternalFrames 的应用程序,但每当我将一个添加到我的 JDesktopPane 时,内部框架的底部阴影是不透明的深灰色,如下所示。这是外观问题吗?有没有办法在不完全移除阴影的情况下解决这个问题?

编辑:这是一些可运行的代码,它演示了一个内部框架即使在使用最基本的形式时也存在底部阴影问题:

public static void main(String[] args) {
    JDesktopPane pane = new JDesktopPane();
    JFrame frame = new JFrame();
    frame.setPreferredSize(new Dimension(600, 400));
    pane.setVisible(true);
    frame.add(pane);
    JInternalFrame intFrame = new JInternalFrame();
    intFrame.setSize(new Dimension(200, 100));
    intFrame.setVisible(true);
    intFrame.setResizable(true);
    pane.add(intFrame);
    frame.pack();
    frame.setVisible(true);

}

您直接覆盖了 JInternalFramepaint(Component) 而不是使用 JPanel 之类的东西,使用其 paintComponent 方法进行自定义绘制,然后将此添加到 JInternalFramecontentPane

就像一个 JFrame,一个 JInternalFrame 有一个 JRootPane,它有一个 contentPane,所有这些都包裹在一个框架装饰中,通过覆盖它的 paint(Component) 直接,你实际上是画在框架装饰的下面,这样底部的灰色区域实际上就是你画在下面的标题区域的高度

当然,这都是基于对类似问题的观察的猜测工作,但是由于您没有提供任何可运行的示例,所以这是我能做的最好的

因此,以防万一有同样问题的人偶然发现这个 post,事实证明这是 OS X El Capitan 中 java 的问题,我目前不知道它的修复方法。