如何告诉JDesktopPane填充JFrame的整个屏幕

时间:2018-05-15 05:48:48

标签: java jframe netbeans-8 jdesktoppane

任何正文请建议代码如何告诉JDesktopPane填写JFrame Netbeans IDE public ApiGatewayProxyResponse invokeLambda(LambdaService lambda, Object data, Map<String, String> headers) { ApiGatewayRequest request = new ApiGatewayRequest(); request.setBody(data); request.setHeaders(headers); ApiGatewayProxyResponse response = lambda.execute(request); return response.getBody(); } 的整个屏幕。

1 个答案:

答案 0 :(得分:0)

  1. JFrame的布局设置为BorderLayout
  2. 将您的JDesktopPane添加到JFrame的CENTER区域:

    JFrame f = new JFrame();
    f.setBounds(50, 50, 500, 400);
    f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    f.setLayout(new BorderLayout());
    JDesktopPane desktopPane = new JDesktopPane();
    f.add(desktopPane, BorderLayout.CENTER);        
    f.setVisible(true);
    
  3. 魔术来自于BorderLayout如何管理其子组件的布局。任何添加到CENTER BorderLayout区域的内容都将填充从其容器中获取的区域。

    如果您希望在JInternalFrame内最大化JDesktopPane,则应在setMaximum(true)添加到基础JDesktopPane之后调用public class JDesktop { public static void main(String[] args) { JFrame f = new JFrame(); f.setBounds(50, 50, 500, 400); f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); f.setLayout(new BorderLayout()); JInternalFrame internalFrame1 = new JInternalFrame("Internal Frame 1", true, true, true, true); internalFrame1.setSize(150, 150); internalFrame1.setVisible(true); JDesktopPane desktopPane = new JDesktopPane(); desktopPane.add(internalFrame1); try { internalFrame1.setMaximum(true); } catch (PropertyVetoException e) { e.printStackTrace(); } f.add(desktopPane, BorderLayout.CENTER); f.setVisible(true); } }

    JFrame

    现在你明白了,了解默认值并不坏。 BorderLayout的默认布局管理器为JFrame,当您向CENTER添加任何内容而未指定该区域的约束时,它将被添加到f.setLayout(new BorderLayout()); 区域。所以你可以在代码中省略这些行:

    desktopPane

    您只需使用以下行添加f.add(desktopPane);

    {{1}}