我想为禁用的 JButton 设置一个图标。问题是,这样的代码:
package problemshowcase;
import java.awt.event.*;
import javax.swing.*;
public class ProblemShowcase {
JFrame frame1 = null;
JButton btn = null;
public static void main(String[] args) {
ProblemShowcase test = new ProblemShowcase();
test.makeFrame();
}
public void makeFrame()
{
frame1 = new JFrame();
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setSize(500,500);
btn = new JButton();
btn.setDisabledIcon(new ImageIcon(getClass().getResource("/test.png")));
btn.addActionListener(new someListener());
frame1.getContentPane().add(btn);
frame1.setVisible(true);
}
class someListener implements ActionListener{
public void actionPerformed(ActionEvent ev){
JButton foo = (JButton) ev.getSource();
foo.setEnabled(false);
}
}
}
单击后使按钮完全变灰,上面没有任何图像。但是,当我将 setDisabledIcon() 更改为 setIcon() 时,它会在单击之前和之后显示正确的图像(尽管它显然是灰色的)。这里有什么问题?