【问题标题】:Java : JLayeredPane resize problemJava:JLayeredPane 调整大小问题
【发布时间】:2011-07-05 15:55:30
【问题描述】:

我正在用 java 编写程序 GUI。我想拥有一个 JLayeredPane 作为我的 JFrame 的 ContentPane。在我的 JLayeredPane 上有两层:一层是 Canvas(canvas1),另一层是 JPanel(jPanel5)。我使用 Netbeans IDE 并生成此代码:

    canvas1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
    canvas1.setBounds(0, 0, -1, -1);
    jLayeredPane1.add(canvas1, javax.swing.JLayeredPane.PALETTE_LAYER);

    jPanel5.setBounds(0, 0, 670, 550);
    jLayeredPane1.add(jPanel5, javax.swing.JLayeredPane.DEFAULT_LAYER);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 553, Short.MAX_VALUE)
    );

包装();

当我运行我的程序时,我看到了一个奇怪的事件!当我改变 tje JFrame 的大小时;主 JLayeredPane 的大小没有改变。我为组件使用了不同的背景颜色,对我来说很明显 JLayered 的大小是永久的,但是我在它的属性中将它设置为垂直和水平可调整大小。 JFrame 可以调整大小,但主 jLayeredPane 的大小是永久的。

如何使 jLayeredPane 调整为我的 JFrame 的大小?!

谢谢你

【问题讨论】:

    标签: java user-interface jlayeredpane


    【解决方案1】:

    尝试使用默认的 BorderLayout 而不是您现在使用的 GroupLayout。只需注释掉以创建 GroupLayout 开头的那组行并添加以下行:

    getContentPane().add(jLayeredPane, BorderLayout.CENTER);
    

    .add() 方法的 BorderLayout.CENTER 参数告诉 BorderLayout 管理器您希望给定的小部件填充窗口的中心。

    【讨论】:

    • 谢谢 但是在生成的netbeans代码中添加这段代码是不可能的。如何在 JLayeredPane 属性中设置他的?
    • 不要使用 Netbeans 生成代码。阅读 Swing 教程 (download.oracle.com/javase/tutorial/uiswing/TOC.html),其中有大量示例说明如何创建自己的 GUI,这样您就不必依赖 IDE。
    • 项目运行后,您可以从 IDE 中取出源代码并对其进行调整以修复 IDE 引起的所有问题。
    【解决方案2】:

    您可以将 JLayeredPane 与 JFrame 一起更改。 在(NetBeans IDE)设计模式下 - 右键单击​​ JLayeredPane,然后在弹出菜单上将鼠标悬停在“自动调整大小”上,然后检查垂直和水平。 这样 JLayeredPane 的大小将相对于 JFrame 发生变化。

    【讨论】:

      猜你喜欢
      • 2021-09-20
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      相关资源
      最近更新 更多