繁体   English   中英

使用Swing JDialog OK / Cancel按钮图标以及自定义图标

[英]Using Swing JDialog OK / Cancel button icons along with a custom icon

我正在通过JOptionPane.showOptionDialog创建一个对话框。 如果我设置Object[] options = null并设置int optionType = JOptionPane.OK_CANCEL_OPTION ,我会得到很好的OKCancel按钮,带有文本和图标(可能是特定的外观?)。

但是我想用我自己的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM