我正在创建一个使用许多JInternalFrame的应用程序,但每当我向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);
}
答案 0 :(得分:2)
您已直接覆盖paint(Component)
的{{1}}而非使用JInternalFrame
之类的内容,使用其JPanel
方法进行自定义绘制,然后将其添加到paintComponent
' JInternalFrame
就像contentPane
一样,JFrame
有一个JInternalFrame
,其JRootPane
并且所有这些都包含在一个框架装饰中,通过覆盖它{{1}直接,你实际上是在框架装饰下面绘画,所以底部的灰色区域实际上是标题区域的高度,你在
当然,这是基于观察类似问题的所有猜测工作,但由于您没有提供任何可运行的示例,它是我能做的最好的
答案 1 :(得分:0)
所以,如果有同样问题的人偶然发现这篇文章,事实证明这是OS X El Capitan中java的一个问题,而我目前还没有意识到它的修复。