java JInternalFrame底部阴影问题
我正在创建一个使用许多JinternalFrame的应用程序,但每当我将一个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);
}
# 1 楼答案
因此,如果有人遇到同样的问题,偶然发现了这篇文章,结果发现这是OS X El Capitan中java的一个问题,而我目前还不知道如何解决它
# 2 楼答案
您已经直接覆盖了
JInternalFrame
的paint(Component)
,而不是使用类似JPanel
的东西,使用它的paintComponent
方法进行自定义绘制,然后将其添加到JInternalFrame
的contentPane
就像一个
JFrame
,一个JInternalFrame
有一个JRootPane
,它有一个contentPane
,所有这些都被包装在一个框架装饰中,通过直接覆盖它的paint(Component)
,你实际上是在框架装饰下绘画,因此底部的灰色区域实际上是你正在绘画的标题区域的高度当然,这都是基于对模拟问题的观察而进行的猜测工作,但由于您没有提供任何可运行的示例,所以我只能这样做