Java 按钮按下视觉样式
Java Button pressing visual style
JButton button = new JButton("Green Button");
button.setBackground(Color.green);
button.setBorderPainted(false);
button.setFocusPainted(false);
使用上面的代码,Java 移除按钮的悬停样式。
按下按钮会使按钮的背景变为蓝色。
但是 Java 如何让按钮的背景在按下时不变(在本例中保持绿色)?
根据您的操作,让 JPanel 像按钮一样工作可能会更好。
另一种似乎可行的方法是 button.setEnabled(false);
尽管它会使文本变淡。
我能想到的最好的方法(我不确定这是最好的)是:
btnConvert.setContentAreaFilled(false);
btnConvert.setBackground(null);
btnConvert.setBorderPainted(false);
btnConvert.setFocusPainted(false);
btnConvert.setOpaque(true);
这将使除文本之外的所有内容都透明。然后,您可以在按钮后面放置一个带有绿色背景的 JPanel。
以下代码有效,并且在您悬停或单击时不会更改:
JPanel panel = new JPanel();
panel.setBackground(Color.green);
JButton button = new JButton("Button");
button.setContentAreaFilled(false);
button.setBackground(null);
button.setBorderPainted(false);
button.setFocusPainted(false);
button.setOpaque(true);
panel.setLayout(new BorderLayout(0, 0));
panel.add(button);
getContentPane().add(panel);
这是您悬停或单击时的样子:
您可以使用像...这样简单的东西
JButton btn = new JButton("Hello");
btn.setBackground(Color.GREEN);
btn.setBorderPainted(false);
btn.setFocusPainted(false);
btn.setContentAreaFilled(false);
btn.setOpaque(true);
btn.setMargin(new Insets(10, 10, 10, 10));
它绘制了一个漂亮的绿色按钮...
这没有 "pressed" 状态渲染
JButton button = new JButton("Green Button");
button.setBackground(Color.green);
button.setBorderPainted(false);
button.setFocusPainted(false);
使用上面的代码,Java 移除按钮的悬停样式。
按下按钮会使按钮的背景变为蓝色。
但是 Java 如何让按钮的背景在按下时不变(在本例中保持绿色)?
根据您的操作,让 JPanel 像按钮一样工作可能会更好。
另一种似乎可行的方法是 button.setEnabled(false);
尽管它会使文本变淡。
我能想到的最好的方法(我不确定这是最好的)是:
btnConvert.setContentAreaFilled(false);
btnConvert.setBackground(null);
btnConvert.setBorderPainted(false);
btnConvert.setFocusPainted(false);
btnConvert.setOpaque(true);
这将使除文本之外的所有内容都透明。然后,您可以在按钮后面放置一个带有绿色背景的 JPanel。
以下代码有效,并且在您悬停或单击时不会更改:
JPanel panel = new JPanel();
panel.setBackground(Color.green);
JButton button = new JButton("Button");
button.setContentAreaFilled(false);
button.setBackground(null);
button.setBorderPainted(false);
button.setFocusPainted(false);
button.setOpaque(true);
panel.setLayout(new BorderLayout(0, 0));
panel.add(button);
getContentPane().add(panel);
这是您悬停或单击时的样子:
您可以使用像...这样简单的东西
JButton btn = new JButton("Hello");
btn.setBackground(Color.GREEN);
btn.setBorderPainted(false);
btn.setFocusPainted(false);
btn.setContentAreaFilled(false);
btn.setOpaque(true);
btn.setMargin(new Insets(10, 10, 10, 10));
它绘制了一个漂亮的绿色按钮...
这没有 "pressed" 状态渲染