gpt4 book ai didi

java - 如何在 JButton 上的较大 imageIcon 上设置较小的 ImageIcon?虽然我希望两个图像都可见

转载 作者:行者123 更新时间:2023-12-04 06:24:38 29 4
gpt4 key购买 nike

我想为 Tanks Game 编写代码,但在现有 ImageIcon 上设置 tank.jpg 时遇到问题,因为我希望这两个图像都可见并向用户显示,就像:

JButton block = new JButton () ;
block.setIcon(new ImageIcon("ground.png")) ;// sets the first image
block.setIcon(new ImageIcon("tank.png")) ;// sets the second image

但是如果我写这样的代码,第二个 setIcon 将替换第一个,这是我不想要的,任何想法如何一次在 JButton 上有 2 个图标?谢谢

最佳答案

最简单的方法是将两个图标合二为一。您可以手动执行此操作(如果您只有少数组合)或写一个 Icon自行实现。

你可以例如将两个图标与以下实现并排对齐:

import java.awt.Component;
import java.awt.Graphics;

import javax.swing.Icon;


public class DoubleIcon implements Icon {

private static final int ICONSPACING = 4;

private final Icon i1;
private final Icon i2;

public DoubleIcon(Icon i1, Icon i2) {
this.i1 = i1;
this.i2 = i2;
}

@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
i1.paintIcon(c, g, x, y + (getIconHeight() - i1.getIconHeight()) / 2);
i2.paintIcon(c, g, x + ICONSPACING + i1.getIconWidth(), y + (getIconHeight() - i2.getIconHeight()) / 2);
}

@Override
public int getIconWidth() {
return i1.getIconWidth() + ICONSPACING + i2.getIconWidth();
}

@Override
public int getIconHeight() {
return Math.max(i1.getIconHeight(), i2.getIconHeight());
}
}

关于java - 如何在 JButton 上的较大 imageIcon 上设置较小的 ImageIcon?虽然我希望两个图像都可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6178406/

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