Как сделать JButton простым плоским стилем?

Какой самый простой способ заставить JButton показывать только цвет фона? Мне не нужны никакие другие эффекты, такие как границы, 3D-вид или подсветка.

Спасибо заранее.

Ответ 1

Я не знаю, пропустил ли я момент... Но я обычно делаю это так:

button.setBorderPainted(false);
button.setFocusPainted(false);
button.setContentAreaFilled(false);

Ответ 2

Просто установите цвета и границу:

private static JButton createSimpleButton(String text) {
  JButton button = new JButton(text);
  button.setForeground(Color.BLACK);
  button.setBackground(Color.WHITE);
  Border line = new LineBorder(Color.BLACK);
  Border margin = new EmptyBorder(5, 15, 5, 15);
  Border compound = new CompoundBorder(line, margin);
  button.setBorder(compound);
  return button;
}

Используйте setOpaque(false);, чтобы сделать фон прозрачным.

Ответ 3

Как насчет

yourButton.setBorder(null);

?

Ответ 4

Вместо этого вы можете использовать JLabel с MouseListener... если вы не связаны с JButton или ActionListener каким-то образом.

Ответ 5

Во-первых, установите свой внешний вид на что-то крутое, как "металл".

try
{
    for (UIManager.LookAndFeelInfo lnf : 
        UIManager.getInstalledLookAndFeels()) {
        if ("Metal".equals(lnf.getName())) {
            UIManager.setLookAndFeel(lnf.getClassName());
            break;
        }
    }
} catch (Exception e) { /* Lazy handling this >.> */ }

Затем сделайте что-то вроде этого:

my_jbutton.setBackground(new Color(240,240,241);

Если цвет вашей кнопки в точности соответствует цвету управления поворотным (240,240,240), окна будут применять стиль кнопки в стиле кнопки к кнопке, в противном случае кнопка принимает простой плоский стиль.