如何更改JOptionPane中的按钮背景
我想知道是否有人知道是否可以更改JOptionPane
内按钮的背景颜色。 我知道如何使用UIManager
更改整个JOptionPane
背景,但知道我想要的是在JOptionPane
设置单独的okButton,cancelButton等来分隔各个颜色。 如果我能做到这一点,我该怎么做?
谢谢您的帮助。
没有直接的方法可以做到这一点。
但是如果你真的想尝试一下,那么你将需要阅读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");