"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Botão

Botão

Publicado em 31/07/2024
Navegar:226

Um botão é um controle que aciona um evento de ação quando clicado. JavaFX fornece botões regulares, botões de alternância, botões de caixa de seleção e botões de opção. Os recursos comuns desses botões são definidos nas classes ButtonBase e Labeled conforme mostrado na figura abaixo.

Image description

A classe Labeled define as propriedades comuns para rótulos e botões. Um botão é como um rótulo, exceto que o botão tem a propriedade onAction definida na classe ButtonBase, que define um manipulador para lidar com a ação de um botão.

O código abaixo fornece um programa que utiliza os botões para controlar o movimento de um texto, conforme mostrado na figura abaixo.

package application;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.text.Text;

public class ButtonDemo extends Application {
    protected Text text = new Text(50, 50, "JavaFX Programming");

    protected BorderPane getPane() {
        HBox paneForButtons = new HBox(20);
        Button btLeft = new Button("Left", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg"));
        Button btRight = new Button("Right", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg"));
        paneForButtons.getChildren().addAll(btLeft, btRight);
        paneForButtons.setAlignment(Pos.CENTER);
        paneForButtons.setStyle("-fx-border-color: green");

        BorderPane pane = new BorderPane();
        pane.setBottom(paneForButtons);

        Pane paneForText = new Pane();
        paneForText.getChildren().add(text);
        pane.setCenter(paneForText);

        btLeft.setOnAction(e -> text.setX(text.getX() - 10));
        btRight.setOnAction(e -> text.setX(text.getX()   10));

        return pane;
    }

    @Override // Override the start method in the Application class
    public void start(Stage primaryStage) {
        // Create a scene and place it in the stage
        Scene scene = new Scene(getPane(), 450, 200);
        primaryStage.setTitle("ButtonDemo"); // Set the stage title
        primaryStage.setScene(scene); // Place the scene in the stage
        primaryStage.show(); // Display the stage
    }

    public static void main(String[] args) {
        Application.launch(args);
    }
}

Image description

O programa cria dois botões btLeft e btRight com cada botão contendo um texto e uma imagem (linhas 18–19). Os botões são colocados em um HBox (linha 20) e o HBox é colocado na parte inferior de um painel de borda (linha 25). Um texto é criado na linha 14 e colocado no centro do painel da borda (linha 29). O manipulador de ação para btLeft move o texto para a esquerda (linha 31). O manipulador de ação para btRight move o texto para a direita (linha 32).

O programa define propositalmente um método getPane() protegido para retornar um painel (linha 16). Este método será substituído por subclasses nos próximos exemplos para adicionar mais nós no painel. O texto é declarado protegido para que possa ser acessado pelas subclasses (linha 14).

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/paulike/button-4khg?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3