Поменять цвет кнопки java

Как установить цвет фона кнопки в Java GUI?

Ниже приведен код, который создает 9 кнопок в форме gridlayout на определенном pannel3. Я хочу, чтобы фон каждой кнопки черный с серым текстом над ним. Может ли кто-нибудь помочь?

Честно говоря, люди, используйте IDE. Автозаполнение является одним из лучших способов изучения языковой библиотеки, а имена методов обычно не требуют пояснений.

@JohnnyCoder, я думаю, я был разочарован, и это был мой способ сказать rtfm. Я все еще верю, что это хороший совет, хотя 🙂

7 ответов

Ознакомьтесь с JButton. Особое внимание обратите на методы setBackground и setForeground , унаследованные от JComponent .

Это не работает с Java 8 на Mac. Цвет фона — это цвет кнопки. Затем кнопка рисуется поверх черного фона, а кнопка серого цвета с серым текстом. (вы не можете прочитать текст). На самом деле, это еще хуже . черный фон вообще не рисуется, если setOpaque(true) вызывается первым.

Чтобы использовать значения RGB:

btn[i].setBackground(Color.RGBtoHSB(int, int, int, float[]));

Возможно, вам может понадобиться использовать метод setOpaque, чтобы убедиться, что цвета отображаются, передав true методу.

Изменение свойства фона может быть недостаточным, поскольку компонент больше не будет выглядеть как кнопка. Возможно, вам понадобится повторно реализовать метод рисования, как в здесь, чтобы получить лучший результат:

Изображение 146683

Используйте setBackground для установки фона и setForeground, чтобы изменить цвет текста. Обратите внимание, однако, что помечать серый текст на черном фоне может сделать ваш текст немного трудным для чтения.

Кажется, что метод setBackground() не работает на некоторых платформах (я использую Windows 7). Я нашел этот ответ на этот вопрос полезным. Однако я не использовал его полностью для решения моей проблемы. Вместо этого я решил, что было бы намного проще и почти эстетично раскрашивать панель рядом с кнопкой.

Ещё вопросы

  • 0 Не получить данные JSON в PHP
  • 0 Как отключить гиперссылку в зависимости от условий в кендо?
  • 0 Записи заказов по определенному заказу с определенными значениями строк
  • 0 Сделайте верхнюю и нижнюю границу divs неровным краем
  • 0 Угловая ошибка: [by: areq]
  • 0 Как показать ошибки в окнах оповещений после нажатия кнопки отправки с помощью угловых JS?
  • 0 Cakephp Auth-> user () null
  • 1 Показ промежуточной рекламы adMob, когда пользователь выходит из приложения, но не намеренно
  • 0 Динамически изменять отображаемый выбранный текст
  • 1 Android-редактирование smali: младшие биты должны быть нулем
  • 1 C # .NET 4.0 Перетаскивание между двумя приложениями
  • 1 Очевидное загрязнение несколькими прокси-объектами для одной цели
  • 1 Новый экземпляр программы создается при прикосновении к тегу NFC
  • 0 Цвет фона не отображается без позиции: абсолютный
  • 0 Подавить часть конструктора по умолчанию?
  • 1 Вставка строк с первичным ключом / внешним ключом с использованием Hibernate
  • 1 Объединить два файла CSV по горизонтали
  • 0 Передача вектора в функцию
  • 0 Возвращаемые значения в редактируемой таблице Datatables — самые последние изменения для всех отредактированных элементов.
  • 1 Highcharts — столбцы гистограммы слишком тонкие, слишком много серий
  • 0 Как получить значение sql AS в Laravel?
  • 0 «Двойной результат», когда я использую случай, когда заявление
  • 1 Silk Test не идентифицирует элемент управления WPF, размещенный на хосте Windows Forms
  • 0 g ++: CreateProcess: нет такого файла или каталога [дубликата]
  • 0 Как визуализировать угловое представление при изменении модели событиями?
  • 0 Разница во времени между часами в ударах
  • 0 Как отобразить результаты RSS ленты в списке JQuery
  • 0 Получить видео идентификаторы из плейлиста ID — YouTube API V3
  • 0 преобразование даты в сокращенном формате строки в формат даты в MySQL
  • 0 Найти функцию в тексте
  • 1 Как сделать AppBarLayout плавающим над контентом, как в недавнем дизайне Google
  • 0 парсинг значения метки в jquery
  • 0 Нажмите кнопку, чтобы установить сортируемый элемент jQuery UI на первую позицию.
  • 0 Два всплывающих окна не работают должным образом
  • 1 Модель слежения / изображение исчезают при включенной автофокусировке
  • 0 Заголовок с использованием Itext
  • 0 QDialog закрашивает виджеты черным при добавлении новых
  • 0 Как провести юнит-тест $ http в angularjs и Jasmine
  • 0 Отправить письмо в формате html в codeigniter
  • 1 ModuleNotFoundError, пока пакет уже установлен
  • 1 жесткий пользовательский ImageDataGenerator
  • 0 Переадресация со стороны сервера в угловой вид SPA
  • 1 Параллельные обновления одной и той же сущности
  • 0 Почему динамическое изменение мета-описания тега не меняет его?
  • 0 МОЯ SMTP-почта продолжает поступать как нежелательная
  • 0 Группа флажков
  • 1 добавить новую строку другого цвета в конце таблицы
  • 0 Сложный JSON повторяется
  • 1 Библиотеки Python отсутствуют в Docker-контейнере после их установки в сборке img
  • 1 Intellij компилирует и собирает все классы (похоже, не использует кеш)

Источник

Как изменить кнопку java

Для изменения и создания кнопки можно воспользоваться пакетами javax.swing и java.awt . Сначала создадим объект класса JFrame , объект класса Button , зададим различные свойства, получим объект класса Container , добавим в него наш объект Button :

import javax.swing.JButton; import javax.swing.JFrame; import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; // Создаем окно нашего приложения JFrame jFrame = new JFrame(); // Создаем кнопку с текстом JButton button = new JButton("Click me"); // Задаем размеры кнопки button.setSize(100,100); // Изменяем цвет заливки кнопки на темно-серый button.setBackground(Color.LIGHT_GRAY); // Задаем размеры окна jFrame.setSize(500, 500); // При закрытии окна наша программа завершит работу jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Сделаем наше окно видимым jFrame.setVisible(true); // Получим контейнер, где разместим кнопку Container container = jFrame.getContentPane(); // Настроим то, как компоненты будут располагаться в контейнере // Каждая строка контейнера будет выровнена по центру // Горизонтальные и вертикальные зазоры будут по 10 container.setLayout(new FlowLayout(FlowLayout.CENTER, 10 ,10)); // Добавляем нашу кнопку как компонент в контейнер container.add(button); 

Источник

Блог

Лучший способ раскрасить кнопки — использовать значки изображений вместо текста. Вы могли бы использовать Gimp для их проектирования.

Убедитесь, что фон прозрачный!

 button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/myimage.png"))); 

Это отключенная button.setDisabledIcon(. кнопка:

введите описание изображения здесь

Это включенная кнопка, не нажата:

введите описание изображения здесь

Это нажатая кнопка включения:

введите описание изображения здесь

Изменение цвета фона после нажатия выполняется с помощью Swing. Для этого вам нужно всего 2 изображения.

Комментарии:

1. да, я тоже пробую это, но когда я использую значок для всей кнопки, при нажатии кнопки нет графического действия (некоторое изменение цвета).

2. Небольшая хитрость здесь заключается в том, что вы должны сделать фон изображения прозрачным.

3. 1 но я не знаю, какое отношение к этому имеет Gimp. Вы можете создать сплошное цветное изображение во время выполнения примерно за 5 строк кода.

4. Я просто делаю свои png-файлы с помощью Gimp. 🙂

Ответ №2:

Вы должны выбрать внешний вид, в котором используется цвет фона так, как вы хотите. Я не знаю, что вы используете в данный момент. Если у вас установлен LAF по умолчанию, настройки цвета и удаления границы должно быть достаточно:

 button.setBackground(color); button.setBorder(null); 

Источник

Читайте также:  Сортировка массива java comparator
Оцените статью