Java JDesktopPane边界-JInternalFrame和#x27;它没有填满整个桌面

Java JDesktopPane边界-JInternalFrame和#x27;它没有填满整个桌面,java,swing,jinternalframe,jdesktoppane,Java,Swing,Jinternalframe,Jdesktoppane,我希望我的JDesktopPane能够最大化其内部的JInternalFrames,并完全屏蔽JDesktopPane的蓝色背景(至少在Mac上是蓝色的)。如果运行此演示,您将看到如果最大化JInternalFrame,它不会占用整个JDesktopPane如何设置JDesktopPane以使JInternalFrame占用整个JDesktopPane 在这张图中,我运行了下面的代码,并按下了JInternalFrame上的maximize按钮,但JDesktopPane上仍然显示“蓝色” im

我希望我的
JDesktopPane
能够最大化其内部的
JInternalFrames
,并完全屏蔽
JDesktopPane
的蓝色背景(至少在Mac上是蓝色的)。如果运行此演示,您将看到如果最大化
JInternalFrame
,它不会占用整个
JDesktopPane
如何设置
JDesktopPane
以使
JInternalFrame
占用整个JDesktopPane

在这张图中,我运行了下面的代码,并按下了JInternalFrame上的maximize按钮,但JDesktopPane上仍然显示“蓝色”

import java.awt.BorderLayout;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JTextArea;

/**
 *
 * @author Robert
 */
public class Temp {

    Temp() {
        boolean resizable = true;
boolean closeable = true;
boolean maximizable  = true;
boolean iconifiable = true;
String title = "Frame Title";
JInternalFrame iframe = new JInternalFrame(title, resizable, closeable, maximizable, iconifiable);

// Set an initial size
int width = 200;
int height = 50;
iframe.setSize(width, height);

// By default, internal frames are not visible; make it visible
iframe.setVisible(true);

// Add components to internal frame...
iframe.getContentPane().add(new JTextArea());

// Add internal frame to desktop
JDesktopPane desktop = new JDesktopPane();
desktop.add(iframe);

// Display the desktop in a top-level frame
JFrame frame = new JFrame();
frame.getContentPane().add(desktop, BorderLayout.CENTER);
frame.setSize(300, 300);
frame.setVisible(true);
    }
    public static void main (String[] args) {
        new Temp();
    }
}


您可以覆盖
JDesktopPane
使用的
DesktopManager
maximizeFrame()
方法。有一个相关的例子。

您可以覆盖
JDesktopPane
使用的
DesktopManager
MaximizeName()
方法。这里有一个相关的例子。

你在谷歌上能找到的东西真是太神奇了。我自己还没有检查过,但这可能会有帮助


你在谷歌上能找到的东西真是太棒了。我自己还没有检查过,但这可能会有帮助

这是什么

// Add internal frame to desktop
JDesktopPane desktop = new JDesktopPane();
desktop.add(iframe);
iframe.setMaximum(true);
提尔,这个

// Add internal frame to desktop
JDesktopPane desktop = new JDesktopPane();
desktop.add(iframe);
iframe.setMaximum(true);

不是在mo的mac上,但你的意思是你想玩这个画面吗??你能发布一个屏幕截图吗?grr,试图上传一张图片,但不起作用。基本上,如果最大化JDesktop中的JInternalFrame,仍然可以看到蓝色(您仍然可以看到桌面)…JInternalFrame实际上不会填满整个JDesktop。我试图得到它,这样它就填满了整个jdesktopah,所以你想要它,这样“框架”就被移除了。这是一个“无”繁琐的问题,因为您需要考虑框架菜单栏。我会有一些想法,看看我想出了什么…不是在我的mac上,而是在mo,但你的意思是你想得到框架的乘坐??你能发布一个屏幕截图吗?grr,试图上传一张图片,但不起作用。基本上,如果最大化JDesktop中的JInternalFrame,仍然可以看到蓝色(您仍然可以看到桌面)…JInternalFrame实际上不会填满整个JDesktop。我试图得到它,这样它就填满了整个jdesktopah,所以你想要它,这样“框架”就被移除了。这是一个“无”繁琐的问题,因为您需要考虑框架菜单栏。我会有一些想法,看看我想出了什么…不幸的是,这个问题与这个问题无关。真的吗?据我所知,内部框架没有填满桌面区域的原因是因为它考虑了桌面周围的阴影嵌入frame@CodeGuy:客户财产在这方面为我工作+1.不幸的是,这个问题与这个问题无关。真的吗?据我所知,内部框架没有填满桌面区域的原因是因为它考虑了桌面周围的阴影嵌入frame@CodeGuy:客户财产在这方面为我工作+1.