【发布时间】:2015-06-01 19:36:41
【问题描述】:
我有一种情况,我需要在单击 JButton 后显示 JOptionPane。 JButton 有一个默认图标和一个鼠标悬停图标(当鼠标悬停在按钮上时显示)。但是,一旦单击按钮并出现 JOptionPane,则翻转图标不会变回原始图标,并且会继续保持不变,直到用户在选择适当的 JOptionPane 选项后将鼠标移回 JButton 的框架。当单击 JButton 并显示 JOptionPane 时,我将如何“取消翻转”它?
TL;DR:即使在被点击时,JButton 也会显示翻转图标并显示 JOptionPanel。我不喜欢。
这是SSCCE:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.UIManager;
public class ButtonUnrollover {
public static void main(String[] args) {
JFrame f = new JFrame();
final JPanel p = new JPanel();
JButton b = new JButton();
b.setIcon(UIManager.getIcon("OptionPane.informationIcon"));
b.setRolloverIcon(UIManager.getIcon("OptionPane.errorIcon"));
// b.setSelectedIcon(UIManager.getIcon("OptionPane.informationIcon"));
// b.setRolloverSelectedIcon(UIManager.getIcon("OptionPane.informationIcon"));
// b.setPressedIcon(UIManager.getIcon("OptionPane.informationIcon"));
p.add(b);
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane jOP = new JOptionPane("Dummy message");
JDialog dialog = jOP.createDialog(p, null);
dialog.setVisible(true);
}
});
f.add(p);
f.pack();
f.setVisible(true);
}
}
注意:我发现了几个类似的问题。但是,这个问题不是重复的,因为这些问题涉及的问题与这个问题略有不同(例如按钮保持按下状态,而不是翻转)。其中一些问题(嗯,实际上我能找到的所有问题)是:
【问题讨论】:
标签: java swing jbutton joptionpane