[英]Using Swing JDialog OK / Cancel button icons along with a custom icon
我正在通过JOptionPane.showOptionDialog
创建一个对话框。 如果我设置Object[] options = null
并设置int optionType = JOptionPane.OK_CANCEL_OPTION
,我会得到很好的OK
和Cancel
按钮,带有文本和图标(可能是特定的外观?)。
但是我想用我自己的Icon添加第三个按钮,所以我明确指定了Object[] options = new Object[] {"OK", "Cancel", <some Icon object>}
。 Icon对象看起来很棒,但是现在我有OK和Cancel的丑陋文本按钮。
有没有办法保持“内置”确定和取消按钮,同时还添加我自己的?
而不是使用字符串“确定”和“取消”选项,使用带图标的JLabel或普通图标。
这是正确的,我通常深入研究showOptionDialog
的源代码,看看它如何设置JOptionPane
(毕竟,它只是一种方便的方法),并显示了完成所需结果所需要做的事情。
这似乎有效:
JPanel panel = new JPanel();
panel.add(new JButton("OK"));
panel.add(new JButton("Cancel"));
panel.add(new JButton("Custom"));
JOptionPane.showOptionDialog(null, "Message", "Title", JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE, null, new Object[] { panel }, null);
当然我没有为这个测试添加图标(我只是从main
运行它,所以没有父组件); 将它们添加到按钮是微不足道的。 您必须提供自己的ActionListener
来设置选择并关闭对话框。
如果你想要股票图标,你必须从UIManager.getIcon(String)
获取它们 - 找到它的名字将是更难的部分。 即使使用Metal主题,我也看不到Mac上库存JOptionPane按钮上的图标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.