我想知道是否有人知道是否可以更改JOptionPane
内按钮的背景颜色。我知道如何使用JOptionPane
更改整个UIManager
背景,但知道我想要的是在JOptionPane
内设置单独的okButton,cancelButton等,以分隔各个颜色。如果我能做到这一点,我该怎么做?
感谢您的帮助。
答案 0 :(得分:7)
没有直接的方法可以做到这一点。
但是如果你真的想尝试一下,那么你需要阅读JOptionPane API,它提供了一些代码,告诉你如何在不使用showXXX方法的情况下手动创建和显示JOptionPane。
使用这种方法,您现在可以访问实际的JDialog。然后,您可以使用Darryl的SwingUtils访问各个按钮,然后设置背景。
代码如下:
JButton ok = SwingUtils.getDescendantOfType(JButton.class, dialog, "Text", "Ok");
ok.setBackground(...);
答案 1 :(得分:3)
最简单的方法就是创建自己的JDialog并根据内心设置按钮特征。
答案 2 :(得分:0)
You can use your own buttons with yours characteristics in showOptionDialog
. I guess it is not the best solution, but it simply works.
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]);
答案 3 :(得分:0)
在JOptionPane之前添加以下代码行
UIManager.put("Button.background", Color.white);
JOptionPane.showMessageDialog(null, "Project, Please");