gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:39:41 25 4
gpt4 key购买 nike

我正在尝试编写一个未修饰的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com