gpt4 book ai didi

java - 如何使用 JLabel 在一个程序中添加几张相同的图像?

转载 作者:行者123 更新时间:2023-11-30 11:18:39 25 4
gpt4 key购买 nike

我正在使用 Swing 并尝试在程序中添加一些图片。

field = new JFormattedTextField(formatter);

ImageIcon icon = new ImageIcon("background.png"),
icon1 = new ImageIcon("1.png");

JLabel background = new JLabel(icon);
JLabel firstIcon = new JLabel(icon1);

JPanel center = new JPanel(new GridLayout(0, 1));


public void initComponents() {
this.getContentPane().add(center, BorderLayout.CENTER);

center.add(background);

field.setBounds(50,50);
background.add(field);
background.add(fristIcon);
}

使用这段代码一切正常,但是当我尝试添加相同的图片时“background.add(fristIcon);”我又没有看到首先添加图像。每个新图像都会删除最后一个图标。

最佳答案

background 是一个 JLabel,您通常不会将一个 JLabel 添加到另一个 JLabel。但是,如果您确实必须这样做,请确保为充当容器的 JLabel 提供一个合适的布局管理器,以便它可以以智能方式显示添加的组件。默认情况下,JLabel 没有布局(空布局),添加的任何组件都需要指定其大小和要显示的位置。虽然您可以这样做——指定添加的所有组件的边界,但我建议您不要这样做,因为这会导致 GUI 非常不灵活,虽然它们在一个平台上看起来不错,但在大多数其他平台或屏幕上看起来很糟糕决议,而且很难更新和维护。相反,您需要研究和学习布局管理器,然后嵌套 JPanel 或其他组件,每个组件都使用自己的布局管理器来创建在所有操作系统上看起来都不错的令人愉悦的复杂 GUI。

考虑只使用基本的 FlowLayout 来理解我的意思:

background.setLayout(new FlowLayout());

注意你

关于java - 如何使用 JLabel 在一个程序中添加几张相同的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23714596/

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