Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีการใช้ JShell โดยใช้ JavaFX ใน Java 9?


JShell เป็นเครื่องมือเชิงโต้ตอบที่ใช้ในการสร้างนิพจน์ตัวอย่าง เราสามารถใช้ JShell โดยทางโปรแกรมได้โดยใช้ JavaFX แอปพลิเคชัน เราจำเป็นต้องนำเข้าแพ็คเกจสองสามตัวในโปรแกรมจาวาที่แสดงด้านล่าง

import jdk.jshell.JShell;
import jdk.jshell.SnippetEvent;
import jdk.jshell.VarSnippet;

ในตัวอย่างด้านล่าง ใช้งานตัวอย่างแอปพลิเคชัน Java FX เราจะป้อนค่าต่างๆ ในช่องข้อความ และกดปุ่ม "ประเมิน ปุ่ม " จะแสดงค่าพร้อมประเภทข้อมูลที่สอดคล้องกันในรายการ

ตัวอย่าง

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();
   }
}

ผลลัพธ์

วิธีการใช้ JShell โดยใช้ JavaFX ใน Java 9?