Кнопка в виде текста Swing

274
22 января 2018, 07:54

Здравствуйте, есть ли в Swing возможность создавать кнопку в виде текста? то есть что-бы не было никаких рамок а просто текст на который нажимаешь и происходит действие?

Answer 1

Кнопку можно стилизовать, убрав часть отрисовки. Например, так:

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

Полный пример:

import javax.swing.*;
import java.awt.*;
public class SwingDemo {
  public static void main(String[] args) {
    JDialog dialog = new JDialog((JFrame)null, "Разные кнопки") {
      {
        setLayout(new FlowLayout());
        add(new JButton("Обычная кнопка"));
        JButton button = new JButton("Кнопка без рамок");
        button.setBorderPainted(false);
        button.setContentAreaFilled(false);
        add(button);
        button.addActionListener(l -> JOptionPane.showMessageDialog(this, "Ура!"));
      }
    };
    dialog.setSize(200, 100);
    dialog.setModal(true);
    dialog.setLocationRelativeTo(null);
    dialog.setVisible(true);
  }
}

Выглядит это так:

При этом сохраняется поведение кнопки (фокус, таб-стоп, можно нажать как с клавиатуры, так и с мышки).

READ ALSO
Maven: вопрос по инкрементальной сборке

Maven: вопрос по инкрементальной сборке

Для сборки проекта я использую следующую команду:

296
Проблема кодировки на Java сервере (mysql)

Проблема кодировки на Java сервере (mysql)

Есть сервер на JavaБД mysql

262
Определить путь для выполнения

Определить путь для выполнения

Нахожусь в папке C:\exampleФайл Example

270
java webapp инициализация BD

java webapp инициализация BD

С целью изучения Servlet/JSP пишу простенькое java webappВ одном из туториалов реализована инициализация BD в классе наследнике ServletContextListener в методе...

262