我想创建一个红色JButton
:颜色设定为一个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);
当不使用时,边界变红而不是按钮本身,但是,我不想使用这一行,因为它删除了按钮的软边缘。是否有另一种颜色按钮的方法?
替代解决方案:可以绘制边框的颜色选择这样的: button2.setBorder(BorderFactory.createLineBorder(Color.black)); –
答案已经在其他帖子中给出,这是一个LAF问题。这个问题没有提到这个信息。如果您使用Mac并了解解决方案,请查看其他信息。把所有关于这个问题的信息放在一起,这样每个人都知道已经讨论和建议的内容。 – camickr