Как сделать фон в javafx

Обновлено: 07.07.2024

Элемент управления JavaFX Button позволяет приложению выполнять некоторые действия, когда пользователь приложения нажимает кнопку. Элемент представлен классом javafx.scene.control.Button. Кнопка может иметь текст и значок, которые указывают пользователю, что будет делать нажатие кнопки.

Создание

Вы создаете элемент управления Button, создавая экземпляр класса Button:

Текст, отображаемый на кнопке, передается в качестве параметров конструктору Button.

Добавление в граф Scene

Чтобы кнопка была видимой, объект кнопки должен быть добавлен в граф Scene. Это означает добавление его к объекту Scene или как дочерний элемент макета, который присоединен к объекту Scene.

Вот пример, который присоединяет кнопку к графу сцены:

Обратите внимание, что кнопка добавляется непосредственно в объект Scene. Обычно вы вкладываете Button в какой-либо компонент макета.

Результатом выполнения приведенного выше примера кнопки является приложение, которое выглядит следующим образом:

Обратите внимание, что кнопка занимает все пространство, доступное в окне. Вот почему трудно увидеть края кнопки. Когда кнопка добавлена к компоненту макета, вы можете легче увидеть края кнопки.

Текст

Есть два способа установить текст кнопки:

  1. передать текст конструктору Button;
  2. вызвать метод setText() для экземпляра Button. Это можно сделать после создания экземпляра Button. Таким образом, его можно использовать для изменения текста кнопки, которая уже видна. Вот пример:

Размер текста

Вы можете установить размер текста кнопки с помощью свойства CSS -fx-text-size.

Обтекание текстом кнопки

Элемент управления Button поддерживает перенос текста текста кнопки. Под переносом текста подразумевается, что если текст слишком длинный для отображения в одной строке внутри кнопки, текст разбивается на несколько строк.

Вы включаете перенос текста в экземпляре Button с помощью метода setWrapText(). Он принимает один логический параметр. Если вы передаете значение true в setWrapText(), тогда вы включаете перенос текста. Если false, отключаете. Вот пример:

Вот снимок экрана с двумя кнопками JavaFX, для одной из которых включена функция переноса текста:

Изображение

Можно отобразить изображение внутри кнопки рядом с текстом. Класс Button содержит конструктор, который может принимать Node в качестве дополнительного параметра. Вот пример метки, который добавляет изображение с помощью компонента ImageView:

Результатом выполнения приведенного выше примера кнопки является приложение, которое выглядит следующим образом:

Размер

Класс Button содержит набор методов, которые вы можете использовать для установки размера кнопки:

  • Методы setMinWidth() и setMaxWidth() устанавливают минимальную и максимальную ширину, которую должна иметь кнопка.
  • Метод setPrefWidth() устанавливает предпочтительную ширину кнопки. Когда есть достаточно места для отображения кнопки в ее предпочтительной ширине, JavaFX сделает это. Если нет, уменьшит размер кнопки, пока она не достигнет минимальной ширины.
  • Методы setMinHeight() и setMaxHeight() устанавливают минимальную и максимальную высоту, которую должна иметь кнопка.
  • Метод setPrefHeight() устанавливает предпочтительную высоту кнопки. Когда есть достаточно места для отображения кнопки в ее предпочтительной высоте, JavaFX сделает это. Если нет, уменьшит размер, пока она не достигнет минимальной высоты.
  • Методы setMinSize(), setMaxSize() и setPrefSize() устанавливают ширину и высоту кнопки за один вызов. Таким образом, эти методы принимают параметры ширины и высоты:

Вот скриншот двух кнопок. Первая имеет размер по умолчанию, рассчитанный по ее тексту кнопки и компоненту макета, внутри которого она вложена. Вторая имеет предпочтительную ширину 200 и высоту 48, установленную на ней:

События

Чтобы реагировать на нажатие кнопки, необходимо прикрепить прослушиватель событий к объекту Button:

Вот как выглядит присоединение слушателя события щелчка с помощью лямбда-выражения Java:

Наконец, давайте посмотрим на полный пример, который изменяет текст метки при нажатии кнопки:

Мнемоника

Вы можете установить мнемонику для экземпляра Button – это клавиша клавиатуры, которая активирует кнопку при нажатии вместе с клавишей ALT. Таким образом, мнемоника – это сочетание клавиш для активации кнопки.

Мнемоника для кнопки указывается внутри текста кнопки. Вы отмечаете, какая клавиша будет использоваться как мнемоника, помещая символ подчеркивания (_) перед символом в тексте кнопки. Символ подчеркивания не будет отображаться в тексте кнопки. Вот пример:

Обратите внимание, что необходимо сначала вызвать setMnemonicParsing() для кнопки со значением true. Это дает команду кнопке анализировать мнемонику в ее тексте. Если вы вызываете этот метод со значением false, символ подчеркивания в тексте кнопки будет просто отображаться как текст и не будет интерпретироваться как мнемоника.

Вторая строка устанавливает текст _Click . Это говорит кнопке использовать ключ с как мнемонику. Мнемоника нечувствительна к регистру, поэтому она не должна быть прописной буквой C, которая активирует кнопку.

Чтобы активировать кнопку, теперь вы можете нажать ALT-C (одновременно). Это активирует кнопку, как если бы вы щелкнули по ней мышью.

Вы также можете сначала нажать клавишу ALT один раз. Это покажет мнемонику кнопки в тексте кнопки. Затем вы можете нажать клавишу c. Если вы нажмете ALT, а затем снова ALT, мнемоника сначала будет показана, а затем снова скрыта. Когда мнемоника видна, вы можете активировать кнопку только с помощью мнемонической клавиши, не нажимая при этом ALT. Когда мнемоника не видна, вы должны одновременно нажать ALT и клавишу мнемоники, чтобы активировать кнопку.

Вот два скриншота, показывающих, как это выглядит, когда мнемоника невидима и видима:

CSS-стили

Вы можете стилизовать кнопку, используя стили CSS. Элемент управления Button поддерживает следующие стили CSS:

Вот пример установки цвета фона кнопки на красный:

Этот пример устанавливает стиль непосредственно для кнопки с помощью метода setStyle(), но вы также можете стилизовать кнопку с помощью таблиц стилей.

Вот пример, который создает 4 разных кнопки. На каждой установлен стиль CSS.

Вот скриншот 4 кнопок JavaFX с их стилем CSS:

Первая кнопка имеет свойства CSS -fx-border-width и -fx-border-color. Это приводит к появлению красной рамки шириной 5 пикселей.

Вторая имеет свойство CSS -fx-background-color. Это приводит к зеленому цвету фона.

Третья имеет свойство CSS -fx-font-size. В результате получается кнопка с текстом, который в 2 раза больше обычного.

Четвертая имеет набор CSS-свойств -fx-text-fill. Это приводит к кнопке с синим цветом текста.

Вы можете объединить стили CSS для кнопки, просто установив для нее несколько свойств CSS, как это сделала первая кнопка в приведенном выше примере.

Отключение

Вы можете отключить кнопку с помощью метода setDisable(). Он принимает логический параметр, который указывает, должна ли кнопка быть отключена или нет. Значение true означает, что кнопка будет отключена, а значение false означает, что она не будет отключена, что означает, что она включена. Вот пример отключения:

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

Ответ 2

Чтобы установить цвет фона для JFrame:

Ответ 3

Ответ 4

Здравствуйте, У меня была такая же проблема, и после многих попыток я обнаружил, что проблема заключается в том, что вам нужен Graphics Object, чтобы рисовать, рисовать (setBackgroundColor).

Мой код обычно выглядит примерно так:

Ответ 5

Вы можете использовать такой контейнер:

Конечно, вы должны импортировать java.awt.Color для цветовой константы красного цвета.

Ответ 6

Здесь другой метод:

Я использую netbeans ide. Для меня JFrame.getContentPane() не выполнялся. Я использовал JFrame.getContentPane() эквивалент класса this.getContentPane .

Ответ 7

вы можете переопределить метод рисования JFrame, а затем заполнить его любимым цветом следующим образом:

Ответ 8

Ответ 9

Это самый простой и правильный метод. Все, что вам нужно сделать, это добавить этот код после initComponents();

Это пример цвета RGB, вы можете заменить его желаемым цветом. Если вы не знаете коды цветов RGB, пожалуйста, найдите в Интернете. есть много сайтов, которые предоставляют пользовательские цвета, подобные этому.

Ответ 10

Ответ 11

Ответ 12

Создайте JLabel, измените его размер так, чтобы он закрывал ваш JFrame. Щелкните правой кнопкой мыши значок JLabel, найдите значок и нажмите кнопку (. ). Выберите изображение, нажав кнопку "Импортировать в проект", затем нажмите "Готово". На панели "Навигатор" (внизу слева по умолчанию, если он отключен, перейдите на вкладку Windows среды NetBeans и включите ее.)

используя Jlable, вы также можете установить цвет фона, а также изображение.

Читайте также: