我想创建一个红色JButton
:
import java.awt.*;
import javax.swing.*;
public class RedButtonTest {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame("Red Button Color Test");
JPanel pane1 = new JPanel(new FlowLayout());
JPanel pane2 = new JPanel(new FlowLayout());
JButton button1 = new JButton();
JButton button2 = new JButton();
frame.setSize(new Dimension(300, 300));
button1.setPreferredSize(new Dimension(100, 100));
button2.setPreferredSize(new Dimension(100, 100));
button2.setBackground(Color.red);
button2.setBorderPainted(false); //This line
button2.setOpaque(true);
pane1.add(button1);
pane2.add(button2);
frame.add(pane1, BorderLayout.WEST);
frame.add(pane2, BorderLayout.EAST);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
有没有办法让按钮变红而不使用
setBorderPainted(false);
当不使用它时,边框变为红色而不是按钮本身,但是,我不想使用此行,因为它会删除按钮的柔化边缘。是否有其他方式为按钮着色?
答案 0 :(得分:0)
尝试使用button2.setContentAreaFilled(false);
。这将保留边缘但设置背景颜色。根据{{3}}:
如果为true,则按钮将绘制内容区域。如果你想拥有一个 透明按钮,例如,仅图标按钮,然后你 应该将此设置为false。不要调用setOpaque(false)。默认 contentAreaFilled属性的值为true。