Исследование диалогов простых форм с кнопкой в ​​Java с использованием BeanShell Eval

В этой статье блога мы углубимся в создание простых диалоговых форм с кнопками на Java с помощью BeanShell Eval. Мы рассмотрим различные методы и предоставим примеры кода для демонстрации их реализации. К концу этой статьи вы получите четкое представление о том, как создавать интерактивные диалоговые формы в Java.

Метод 1: использование Java Swing
Java Swing предоставляет богатый набор компонентов для создания графических пользовательских интерфейсов. Вот пример простой диалоговой формы с кнопкой с использованием Java Swing:

import javax.swing.*;
public class FormDialog extends JFrame {
    private JButton button;
    public FormDialog() {
        button = new JButton("Click Me");
        button.addActionListener(e -> {
            // Button action logic goes here
            JOptionPane.showMessageDialog(null, "Button clicked!");
        });
        JPanel panel = new JPanel();
        panel.add(button);
        add(panel);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 200);
        setVisible(true);
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(FormDialog::new);
    }
}

Метод 2: использование JavaFX
JavaFX — это мощная среда для создания многофункциональных клиентских приложений. Вот пример простой диалоговой формы с кнопкой с использованием JavaFX:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class FormDialog extends Application {
    @Override
    public void start(Stage primaryStage) {
        Button button = new Button("Click Me");
        button.setOnAction(e -> {
            // Button action logic goes here
            System.out.println("Button clicked!");
        });
        StackPane root = new StackPane();
        root.getChildren().add(button);
        Scene scene = new Scene(root, 300, 200);
        primaryStage.setTitle("Form Dialog");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

Метод 3: использование JavaFX с FXML
JavaFX поддерживает FXML, язык разметки на основе XML для определения пользовательских интерфейсов. Вот пример простой диалоговой формы с кнопкой с использованием JavaFX и FXML:

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class FormDialog extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("form_dialog.fxml"));
        Scene scene = new Scene(root, 300, 200);
        primaryStage.setTitle("Form Dialog");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

Метод 4: использование JavaFX с Scene Builder
JavaFX Scene Builder — это инструмент визуального макетирования, который позволяет проектировать интерфейсы приложений JavaFX без написания кода. Вот пример простой формы диалога с кнопкой с использованием JavaFX и Scene Builder:

  1. Разработайте пользовательский интерфейс диалогового окна формы с помощью Scene Builder.
  2. Сохраните дизайн как файл FXML.
  3. Загрузите файл FXML в приложение JavaFX с помощью FXMLLoader.
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class FormDialog extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("form_dialog.fxml"));
        Scene scene = new Scene(root, 300, 200);
        primaryStage.setTitle("Form Dialog");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}