JShell নমুনা অভিব্যক্তি বাস্তবায়ন করতে ব্যবহৃত একটি ইন্টারেক্টিভ টুল। আমরা JavaFX ব্যবহার করে JShell প্রোগ্রামে প্রয়োগ করতে পারি অ্যাপ্লিকেশন তারপর নিচে তালিকাভুক্ত জাভা প্রোগ্রামে আমাদের কয়েকটি প্যাকেজ আমদানি করতে হবে
import jdk.jshell.JShell; import jdk.jshell.SnippetEvent; import jdk.jshell.VarSnippet;
নীচের উদাহরণে, একটি নমুনা জাভা এফএক্স অ্যাপ্লিকেশন প্রয়োগ করা হয়েছে। আমরা টেক্সট ফিল্ডে বিভিন্ন মান লিখব এবং "eval টিপুন " বোতাম৷ এটি একটি তালিকায় সংশ্লিষ্ট ডেটা প্রকারের সাথে মান প্রদর্শন করবে৷
৷উদাহরণ
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.stage.Stage; import java.util.List; import jdk.jshell.JShell; import jdk.jshell.SnippetEvent; import jdk.jshell.VarSnippet; public class JShellFXTest extends Application { @Override public void start(Stage primaryStage) throws Exception { JShell shell = JShell.builder().build(); TextField textField = new TextField(); Button evalButton = new Button("eval"); ListView<String> listView = new ListView<>(); evalButton.setOnAction(e -> { List<SnippetEvent> events = shell.eval(textField.getText()); events.stream().map(event -> convert(event)).filter(s -> s != null).forEach(s -> listView.getItems().add(s)); }); BorderPane pane = new BorderPane(); pane.setTop(new HBox(textField, evalButton)); pane.setCenter(listView); Scene scene = new Scene(pane); primaryStage.setScene(scene); primaryStage.show(); } public static String convert(SnippetEvent e) { if(e.snippet() instanceof VarSnippet) { return ((VarSnippet) e.snippet()).typeName() + " " + ((VarSnippet) e.snippet()).name() + " " + e.value(); } return null; } public static void main(String[] args) { launch(); } }
আউটপুট