java - JFrame setComponentZOrder() 更改对象的大小

标签 java swing jframe

我正在尝试编写一个未修饰的 JFrame。我正在尝试将按钮放在背景标签上。然而,设置按钮的 Z 顺序会导致按钮拉伸(stretch)到 jframe 的大小,并且 setBounds() 和 setSize() 都不会改变这种情况。这是我的代码:

import javax.swing.*;

public class MyApp {

    public static void main(String[] args) {

        JFrame mainFrame = new JFrame();
        mainFrame.setBounds(0, 112, 100, 50);
        mainFrame.setLayout(null);
        mainFrame.setUndecorated(true);

        JLabel lblBackground = new JLabel(new ImageIcon(JFrame.class.getResource("/res/green.png")));
        lblBackground.setBounds(0, 0, 100, 50);

        JButton btnStart = new JButton("");
        btnStart.setBounds(5, 15, 10, 15);

        mainFrame.add(lblBackground);
        mainFrame.add(btnStart);
        mainFrame.setComponentZOrder(btnStart, 0); 
        mainFrame.setComponentZOrder(btnStart, 1); 


        mainFrame.setVisible(true);

    }   
}  

感谢您的回复。

最佳答案

为此使用 JLayeredPane。

您需要创建一个新的 JLayeredPane: JLayeredPane 分层 = new JLayeredPane();

设置您的 JFrame 以将其用作内容 Pane : mainFrame.setContentPane(分层);

并按以下格式添加您的组件: layered.add(Component c, int layerNumber);

希望对您有用!

More on JLayeredPanes

关于java - JFrame setComponentZOrder() 更改对象的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18155687/

相关文章:

Java 打开 JFrame 内部的 URL

java - java中的变量继承

java - 亚马逊AWS EC2,如何组合实例?

java - 如何使用 jFreeChart 确定 StackedBarChart 中 ItemMargin 属性的最小值和最大值

Java - 在 Java 程序中运行带有 args 的 java 程序

java - 如何聚焦 JFrame?

java - JFrame连续调用函数来检查结果

Java编写png文件使一切透明

java - OSGi 依赖关系可视化

java - 在 JPanel 中设置方向