我正在制作一个简单的转换工具,将美元转换为欧元,反之亦然。
整个目的只是为了试验和学习这个很棒的工具 java。
我在顶部有一个带有欧元图标的 JLabel 来指示起始货币。我在下面有一个按钮,我想用它将该图标更改为一美元。
我目前正在使用 ActionListener 并尝试 setIcon/setIconImage 的不同变体(我能想到的每一次迭代都发现到目前为止没有任何效果)。
public class MoneyConverter extends JFrame implements ActionListener{
//add label and icon showing base conversion currency
JLabel startcur = new JLabel("<--- Starting Curency", new ImageIcon("C:\\Users\\Russel\\Desktop\\1euro.gif"), SwingConstants.CENTER);
JButton euro = new JButton("Swap to Euro");
JButton dollar = new JButton("Swap to Dollar");
然后我设置了一个
public MoneyConverter(){}
方法并将我所有的组件添加到网格布局并将 ActionLister 添加到我的转换按钮。
例如
dollar.addActionListener(this);
euro.addActionListener(this);
在通常的代码之后(setVisible 和类似的代码,为了您的缘故我将省略,因为我不认为它会干扰它,请让我知道我是否应该包括所有代码)
public void ActionPerformed (ActionEvent e){
Object source = e.getSource();
if (source.equals(euro)){
startcur.setIcon(new ImageIcon("C:\\Users\\Russel\\Desktop\\1.gif"));
}
}
这部分已经改了很多次了,是这篇文章的主要原因,我如何在 JLabel 中更改这个图标? - 我还将在这里设置转换率,具体取决于他们选择以美元还是欧元开始。 (汇率不是实际汇率。)
最佳答案
首先,创建并存储一个新的ImageIcon
ImageIcon image = new ImageIcon(getClass().getResource("/nameOfImage.jpg"));
然后将其放入您的Action Listener
label.setIcon(image);
label.setText("");
您必须确保为您的项目设置了一个资源文件夹。您可以在 IntelliJ 中阅读如何执行此操作或 Eclipse
您还声明了 actionPerformed()
错误。我建议阅读 this你应该这样做。
@Override
public void actionPerformed(ActionEvent e)
{
}
通常,在 java 中,方法名以小写字母开头,类名以大写字母开头。
关于java - 如何使用 JButton 更改 JLabel 中的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36186834/