gpt4 book ai didi

java - 如何在界面中插入图标​​?

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

我需要一些帮助来解决是否可以创建图标的 ArrayList<>,然后使用这些图标并在界面 JLabel 中将它们打印出来。我想做的是制作 3 个按钮,上面写着红色、绿色和蓝色。当您按下按钮时,它会生成一个该颜色的正方形。如果我按多次,它会生成多个方 block ,而不会删除以前的方 block 。

redBut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
icon.addIcon(new SquareIcon(50, Color.red));
label.setIcon(icon.getIcon(icon.getIconsSize()));
System.out.println(icon.getIconsSize());
frame.repaint();
frame.pack();
}
});

这是红色按钮,正如您所看到的,当我按下它时,我向 ArrayList 添加了一个新图标。之后,我尝试通过获取数组列表中某个索引上的图标来将标签设置为该图标,并通过找出数组列表的大小并用 1 减去它来获取索引号(因为数组列表从 0 开始) .

我使用 println 来测试它是否确实被添加到数组列表中。

但是我还是无法让它出现在界面上?另外,它可以与多个图标一起使用吗?

<小时/>

编辑:
当您多次单击按钮时,我试图使多个方 block 出现在窗口中(我认为它们被称为 JFrames?)。不管怎样,你是说我只能创建一次图标,然后每次单击按钮时创建一个新的 JLabel,并将它们存储在列表中,然后用其中一个图标填充 JLabels?

最佳答案

您声明:

I need some help with solving out if it's possible to create an ArrayList<> of Icons, and then using those Icons and print them out in an interface JLabel.

也许这不是解决您问题的最佳方法...

What I am trying to do is to make 3 buttons on which it says red, green and blue. When you press a button, it makes a square in that color. If I press multiple times, it makes multiple squares without deleting the previous ones.

建议:

  • 我认为您不需要图标数组列表。
  • 同样,只创建三个 Icon 对象和变量:redIcon、greenIcon 和 blueIcon
  • 每次按下蓝色 JButton 时,都会使用 blueIcon 创建一个新的 JLabel,并将其添加到显示标签的 JPanel 中。
  • 从包含的 JPanel 添加或删除组件后,不要忘记在包含的 JPanel 上调用 revalidate()repaint()revalidate() 告诉 JPanel 重新布局其所有组件,包括添加的新组件,并且 repaint() 调用有助于绘制任何“脏”组件容器上需要清理的区域。
  • 请注意,您可以在多个 JLabel 中多次重复使用同一个 ImageIcon。

关于java - 如何在界面中插入图标​​?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19878161/

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