Все виды кнопок java

Элементы управления

Наиболее часто используемые элементы управления в JavaFX — это, без сомнения, кнопки и метки. Кнопки представлены классом javafx.scene.control.Button и позволяют по нажатию выполнять некоторые действия. А метки представлены классы javafx.scene.control.Label , и их задача — вывод текстовой информации. Класс Button унаследован от классов ButtonBase, Labeled, Region, Control, Parent и Node, а класс Label — от Labeled, Region, Control, Parent и Node. JavaFX позволяет создавать самые разнообразные кнопки и метки: с текстом, графикой, и тем и другим, с различными стилями.

Класс Button имеет три конструктора:

  • Button() : создает кнопку без надписи
  • Button​(String text) : создает кнопку с определенной надписью
  • Button​(String text, Node graphic) : создает кнопку с определенной надписью и иконкой

Класс Label имеет три похожих конструктора:

  • Label() : создает метку без надписи
  • Label​(String text) : создает метку с определенной надписью
  • Label(String text, Node graphic) : создает метку с определенной надписью и иконкой

Ключевой возможностью кнопки является способность реагировать на нажатия пользователей и по нажтию выполнять некоторое действие. Для обработки нажатий в базовом классе ButtonBase определен метод setOnAction() , который устанавливает обработчик нажатия:

final void setOnAction(EventHandler handler)

В качестве параметра в этот метод передается реализация интерфейса EventHandler:

public interface EventHandler

Используем кнопку в программе:

import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.Parent; import javafx.scene.layout.FlowPane; import javafx.scene.control.Label; import javafx.scene.control.Button; import javafx.event.ActionEvent; import javafx.event.EventHandler; public class Main extends Application < int clicks = 0; public static void main(String[] args) < Application.launch(args); >@Override public void start(Stage stage) throws Exception < Label lbl = new Label("Counter"); lbl.setPrefWidth(70); Button btn = new Button("Click"); btn.setPrefWidth(80); btn.setOnAction(new EventHandler() < @Override public void handle(ActionEvent event) < clicks++; lbl.setText(String.valueOf(clicks)); >>); FlowPane root = new FlowPane(lbl, btn); Scene scene = new Scene(root); stage.setScene(scene); stage.setTitle("Hello JavaFX"); stage.setWidth(250); stage.setHeight(200); stage.show(); > >

В классе определена переменная-счетчик counter. И по нажатию на кнопку будет увеличиваться ее значение.

Источник

JavaFX Button руководство по работе с кнопками

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

Создание

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

Button button = new Button("My Label");

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

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

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

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

package com.jenkov.javafx.controls; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.stage.Stage; public class ButtonExperiments extends Application < @Override public void start(Stage primaryStage) throws Exception < primaryStage.setTitle("HBox Experiment 1"); Button button = new Button("My Button"); Scene scene = new Scene(button, 200, 100); primaryStage.setScene(scene); primaryStage.show(); >public static void main(String[] args) < Application.launch(args); >>

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

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

Компонент кнопки JavaFX, отображаемый в графике сцены

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

Текст

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

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

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

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

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

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

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

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

Два экземпляра кнопки JavaFX, один с включенным переносом текста

Изображение

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

package com.jenkov.javafx.controls; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.stage.Stage; import java.io.FileInputStream; public class ButtonExperiments extends Application < @Override public void start(Stage primaryStage) throws Exception < primaryStage.setTitle("HBox Experiment 1"); FileInputStream input = new FileInputStream("resources/images/iconmonstr-home-6-48.png"); Image image = new Image(input); ImageView imageView = new ImageView(image); Button button = new Button("Home", imageView); Scene scene = new Scene(button, 200, 100); primaryStage.setScene(scene); primaryStage.show(); >public static void main(String[] args) < Application.launch(args); >>

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

Компонента JavaFX с надписями картинки

Размер

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

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

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

Два экземпляра кнопки

События

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

button.setOnAction(new EventHandler() < @Override public void handle(ActionEvent actionEvent) < //. do something in here. >>);

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

button.setOnAction(actionEvent -> < //. do something in here. >);

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

package com.jenkov.javafx.controls; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.HBox; import javafx.stage.Stage; public class ButtonExperiments extends Application < @Override public void start(Stage primaryStage) throws Exception < primaryStage.setTitle("HBox Experiment 1"); Label label = new Label("Not clicked"); Button button = new Button("Click"); button.setOnAction(value ->< label.setText("Clicked!"); >); HBox hbox = new HBox(button, label); Scene scene = new Scene(hbox, 200, 100); primaryStage.setScene(scene); primaryStage.show(); > public static void main(String[] args) < Application.launch(args); >>

Мнемоника

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

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

button.setMnemonicParsing(true); button.setText("_Click");

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

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

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

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

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

кнопка скрытавидима

CSS-стили

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

-fx-border-width -fx-border-color -fx-background-color -fx-font-size -fx-text-fill

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

Button button = new Button("My Button"); button.setStyle("-fx-background-color: #ff0000; ");

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

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

package com.jenkov.javafx.controls; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.HBox; import javafx.stage.Stage; import java.io.FileInputStream; import java.io.FileNotFoundException; public class ButtonExperiments extends Application < @Override public void start(Stage primaryStage) throws Exception < primaryStage.setTitle("Button Experiment 1"); Button button1 = new Button("Button 1"); Button button2 = new Button("Button 2"); Button button3 = new Button("Button 3"); Button button4 = new Button("Button 4"); button1.setStyle("-fx-border-color: #ff0000; -fx-border-width: 5px;"); button2.setStyle("-fx-background-color: #00ff00"); button3.setStyle("-fx-font-size: 2em; "); button4.setStyle("-fx-text-fill: #0000ff"); HBox hbox = new HBox(button1, button2, button3, button4); Scene scene = new Scene(hbox, 400, 100); primaryStage.setScene(scene); primaryStage.show(); >public static void main(String[] args) < Application.launch(args); >>

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

4 экземпляра кнопок с различными стилями 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 означает, что она не будет отключена, что означает, что она включена. Вот пример отключения:

Button button = new Button(); button.setText("Click me!"); // here the app is running, and something happens so // the button should now be disabled. button.setDisable(true); // again the app runs, and something happens so // the button should now be enabled again. button.setDisable(false);

Источник

Все виды кнопок java

Learn Latest Tutorials

Splunk tutorial

SPSS tutorial

Swagger tutorial

T-SQL tutorial

Tumblr tutorial

React tutorial

Regex tutorial

Reinforcement learning tutorial

R Programming tutorial

RxJS tutorial

React Native tutorial

Python Design Patterns

Python Pillow tutorial

Python Turtle tutorial

Keras tutorial

Preparation

Aptitude

Logical Reasoning

Verbal Ability

Company Interview Questions

Artificial Intelligence

AWS Tutorial

Selenium tutorial

Cloud Computing

Hadoop tutorial

ReactJS Tutorial

Data Science Tutorial

Angular 7 Tutorial

Blockchain Tutorial

Git Tutorial

Machine Learning Tutorial

DevOps Tutorial

B.Tech / MCA

DBMS tutorial

Data Structures tutorial

DAA tutorial

Operating System

Computer Network tutorial

Compiler Design tutorial

Computer Organization and Architecture

Discrete Mathematics Tutorial

Ethical Hacking

Computer Graphics Tutorial

Software Engineering

html tutorial

Cyber Security tutorial

Automata Tutorial

C Language tutorial

C++ tutorial

Java tutorial

.Net Framework tutorial

Python tutorial

List of Programs

Control Systems tutorial

Data Mining Tutorial

Data Warehouse Tutorial

Javatpoint Services

JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.

  • Website Designing
  • Website Development
  • Java Development
  • PHP Development
  • WordPress
  • Graphic Designing
  • Logo
  • Digital Marketing
  • On Page and Off Page SEO
  • PPC
  • Content Development
  • Corporate Training
  • Classroom and Online Training
  • Data Entry

Training For College Campus

JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week

Like/Subscribe us for latest updates or newsletter RSS Feed Subscribe to Get Email Alerts Facebook Page Twitter Page YouTube Blog Page

Источник

Читайте также:  Css язык программирования самоучитель
Оцените статью