我想知道是否有人知道是否可以更改JOptionPane
. 我知道如何使用 更改整个JOptionPane
背景UIManager
,但知道我想要的是在 中设置单独的 okButton、cancelButton 等JOptionPane
以分隔单独的颜色。如果我能做到这一点,我将如何做到这一点?
谢谢您的帮助。
我想知道是否有人知道是否可以更改JOptionPane
. 我知道如何使用 更改整个JOptionPane
背景UIManager
,但知道我想要的是在 中设置单独的 okButton、cancelButton 等JOptionPane
以分隔单独的颜色。如果我能做到这一点,我将如何做到这一点?
谢谢您的帮助。
没有直接的方法可以做到这一点。
但是,如果您真的想尝试一下,那么您将需要阅读 JOptionPane API,它提供的代码向您展示了如何在不使用 showXXX 方法的情况下手动创建和显示 JOptionPane。
使用这种方法,您现在可以访问实际的 JDialog。然后您可以使用 Darryl 的SwingUtils访问各个按钮,然后设置背景。
代码将类似于:
JButton ok = SwingUtils.getDescendantOfType(JButton.class, dialog, "Text", "Ok");
ok.setBackground(...);
最简单的方法是创建您自己的 JDialog 并将按钮特性设置为您喜欢的内容。
您可以在showOptionDialog
. 我想这不是最好的解决方案,但它确实有效。
JButton button = new JButton("OK");
button.setBackground(Color.BLACK);
button.setForeground(Color.WHITE);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
JOptionPane.getRootFrame().dispose();
}
});
JButton[] buttons = { button };
OptionPane.showOptionDialog(null, "Test Message", "Dialog", JOptionPane.OK_OPTION, JOptionPane.INFORMATION_MESSAGE, new ImageIcon(), buttons, buttons[0]);
在您的 JOptionPane 之前添加以下代码行
UIManager.put("Button.background", Color.white);
JOptionPane.showMessageDialog(null, "Project, Please");