gpt4 book ai didi

java - 从 getSource 更改 JButton 上的格式

转载 作者:行者123 更新时间:2023-11-30 05:59:05 40 4
gpt4 key购买 nike

我有以下代码:

public class LetterListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
e.getSource();
}
}

我希望能够在按下按钮后设置按钮的不透明度,即您单击一个字母,它就会变得不透明。我想不出如何实现这一点。理想情况下,我可以使用 e.getSource.setOpaque(true) 但这似乎不是一个选择。我也是 Swing 的新手。

我像这样初始化了我的 JPanel,因此每个按钮都没有存储在变量中。

JPanel letters = new JPanel(new GridLayout(4,3));
for (String letter:letterArr){
JButton button =new JButton(letter);
LetterListener letterListener=new LetterListener();
button.addActionListener(letterListener);
button.setOpaque(false);
letters.add(button);

最佳答案

ActionEvent 继承自 EventObject,根据 the relevant APIActionEvent#getSource() 返回 Object 类型,因此您无法对该类型的变量进行 JButton 方法调用。要执行您想要的操作,您必须将变量强制转换为 JButton 类型 - 并带有有关强制转换危险的所有常见警告/警告/附带条件。

所以改变

e.getSource.setOpaque(true);

至:

((JButton) e.getSource).setOpaque(true);

但是我再次强调,无论何时进行转换,您最好绝对确保转换的类型正确。

关于java - 从 getSource 更改 JButton 上的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52578300/

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