JavaFx---虚拟旅游项目

J a v a F x − − − 虚 拟 旅 游 项 目 JavaFx---虚拟旅游项目 JavaFx

package test;

import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.ba;
import com.teamdev.jxbrowser.chromium.javafx.BrowserView;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.geometry.Orientation;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ScrollBar;
import javafx.scene.effect.BlurType;
import javafx.scene.effect.DropShadow;
import javafx.scene.effect.Effect;
import javafx.scene.image.Image;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyCombination;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.paint.ImagePattern;
import javafx.scene.paint.Paint;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.math.BigInteger;

/**
 * @author major_s
 * @date 2020/6/20 - 18:52
 **/
public class Main extends Application {

    /*------------------------------------------------------浏览器授权认证----------------------------------------------------------------*/
    static {
        try {
            Field e = ba.class.getDeclaredField("e");
            e.setAccessible(true);
            Field f = ba.class.getDeclaredField("f");
            f.setAccessible(true);
            Field modifersField = Field.class.getDeclaredField("modifiers");
            modifersField.setAccessible(true);
            modifersField.setInt(e, e.getModifiers() & ~Modifier.FINAL);
            modifersField.setInt(f, f.getModifiers() & ~Modifier.FINAL);
            e.set(null, new BigInteger("1"));
            f.set(null, new BigInteger("1"));
            modifersField.setAccessible(false);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /*------------------------------------------------------全局变量----------------------------------------------------------------*/
    int AllProjectNum=7;
    int  ControlNum = 0; // 控制数
    Stage stage=new Stage();
    Browser browser = new Browser();
    BrowserView browserView = new BrowserView(browser);

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

    @Override
    public void init() throws Exception {
        super.init();
        // 启动辅助程序
        Runtime.getRuntime().exec("E:\\Software\\JoyToKey\\JoyToKey.exe");
        System.out.println(Thread.currentThread().getName());
    }

    @Override
    public void start(Stage primaryStage) throws Exception {


        Image head_img = new Image("img/head.png");
        Button b = new Button("button");
        /*-----------------------------------------------------head---------------------------------------------------------------*/
        AnchorPane a1 = new AnchorPane();
        a1.setPrefHeight(100);
        a1.setPrefWidth(100);
        a1.setStyle("-fx-background-color: #FFFFFF");


        Rectangle HeadRec = new Rectangle(1891,153);
        HeadRec.setFill(new ImagePattern(head_img));
        HBox hbox =new HBox();
        hbox.getChildren().addAll(HeadRec);
        hbox.setAlignment(Pos.CENTER);
        a1.getChildren().addAll(hbox);
        /*--------------------------------------------------------------------------------------------------------------------*/

        AnchorPane a2 = new AnchorPane();
//       a2.setPrefHeight(100);
//       a2.setPrefWidth(100);
        a2.setStyle("-fx-background-color: #FFFFFF");
        /*--------------------------------------------------------------------------------------------------------------------*/

        AnchorPane a3 = new AnchorPane();
        a3.setPrefHeight(100);
        a3.setPrefWidth(100);
        a3.setStyle("-fx-background-color: #FFFFFF");
        /*----------------------------------------------------ScrollBar----------------------------------------------------------------*/

        AnchorPane a4 = new AnchorPane();
        a4.setPrefHeight(100);
        a4.setPrefWidth(100);
        ScrollBar sc = new ScrollBar();
        sc.setOrientation(Orientation.VERTICAL);

        a4.getChildren().add(sc);
        a4.setRightAnchor(sc,0.0);
        // 滚动条内部长度
        sc.setVisibleAmount(50);
        a4.setStyle("-fx-background-color: #FFFFFF");
        /*----------------------------------------------------Cenyter----------------------------------------------------------------*/






        Image image = new Image("img/1.png");
        GridPane grid = new GridPane();
        grid.setHgap(60);
        grid.setVgap(100);

        for (int i = 0;i <4;i++){
            for(int j=0;j<2;j++){
                Rectangle rec = new Rectangle(300,300);
                rec.setFill(Paint.valueOf("#EDEDED"));
                grid.add(rec,i,j);
            }
        }


        Rectangle rec1 = (Rectangle)grid.getChildren().get(0);
        rec1.setFill(new ImagePattern(image));
        rec1.setEffect(getEffect_1());
        Rectangle rec2 = (Rectangle)grid.getChildren().get(1);
        rec2.setFill(new ImagePattern(image));
        rec2.setEffect(getEffect());
        Rectangle rec3 = (Rectangle)grid.getChildren().get(2);
        rec3.setFill(new ImagePattern(image));
        rec3.setEffect(getEffect());
        Rectangle rec4 = (Rectangle)grid.getChildren().get(3);
        rec4.setFill(new ImagePattern(image));
        rec4.setEffect(getEffect());
        Rectangle rec5 = (Rectangle)grid.getChildren().get(4);
        rec5.setFill(new ImagePattern(image));
        rec5.setEffect(getEffect());
        Rectangle rec6 = (Rectangle)grid.getChildren().get(5);
        rec6.setFill(new ImagePattern(image));
        rec6.setEffect(getEffect());
        Rectangle rec7 = (Rectangle)grid.getChildren().get(6);
        rec7.setFill(new ImagePattern(image));
        rec7.setEffect(getEffect());
        Rectangle rec8 = (Rectangle)grid.getChildren().get(7);
        rec8.setFill(new ImagePattern(image));
        rec8.setEffect(getEffect());

        AnchorPane a5 = new AnchorPane();
        a5.setTopAnchor(grid,50.0);
        a5.setLeftAnchor(grid,150.0);
        //grid.setAlignment(Pos.CENTER);
        a5.getChildren().add(grid);
//        a5.setPrefHeight(100);
//        a5.setPrefWidth(100);
        a5.setStyle("-fx-background-color: #FFFFFF");

        /*-----------------------------------------------------Control---------------------------------------------------------------*/

        Button b1 =new Button("button1");

        b1.setOpacity(0);
        b1.setOnKeyPressed(new EventHandler<KeyEvent>() {
            @Override
            public void handle(KeyEvent event) {
//                System.out.println(event.getCharacter());
                System.out.println("事件类型"+event.getEventType());
                System.out.println("事件源:s"+event.getSource());
                System.out.println("事件目标:"+event.getTarget());
//                //  获取按键字符
//                System.out.println(event.getText());
//                // 判断
//                System.out.println(event.isControlDown());

                /*-----------------------------------------------------Control&&Effect---------------------------------------------------------------*/
                grid.getChildren().get(ControlNum).setEffect(getEffect());

                if(event.getCode().getName().equals(KeyCode.UP.getName())){
                    System.out.println("UP");


                    if(ControlNum%2==0) {
                        ControlNum=ControlNum+1;

                    }else if(ControlNum%2==1) {
                        ControlNum=ControlNum-1;
                    }

                    if(ControlNum<0) {
                        ControlNum = 7;
                    }else if(ControlNum>7) {
                        ControlNum = 0;
                    }

                }else if(event.getCode().getName().equals(KeyCode.LEFT.getName())){
                    System.out.println("LEFT");

                    if(ControlNum==0){
                        ControlNum=6;
                        System.out.println(ControlNum);
                    }else if(ControlNum==1){
                        ControlNum=7;
                        System.out.println(ControlNum);
                    }else {
                        ControlNum=ControlNum-2;
                    }

                    if(ControlNum<0) {
                        ControlNum = 7;
                    }else if(ControlNum>7) {
                        ControlNum = 0;
                    }


                }else if(event.getCode().getName().equals(KeyCode.DOWN.getName())){
                    System.out.println("DOWN");

                    if(ControlNum%2==0) {
                        ControlNum=ControlNum+1;

                    }else if(ControlNum%2==1) {
                        ControlNum=ControlNum-1;
                    }

                    if(ControlNum<0) {
                        ControlNum = 7;
                    }else if(ControlNum>7) {
                        ControlNum = 0;
                    }


                }else if(event.getCode().getName().equals(KeyCode.RIGHT.getName())){
                    System.out.println("RIGHT");

                    if(ControlNum==6){
                        ControlNum=0;
                        System.out.println(ControlNum);
                    }else if(ControlNum==7){
                        ControlNum=1;
                        System.out.println(ControlNum);
                    }else {
                        ControlNum=ControlNum+2;
                    }

                    if(ControlNum<0) {
                        ControlNum = 7;
                    }else if(ControlNum>7) {
                        ControlNum = 0;
                    }

                }else if(event.getCode().getName().equals(KeyCode.J.getName())){
                    System.out.println("J");
                }

                // System.out.println(ControlNum+"********");
                /*-----------------------------------------------------Effect---------------------------------------------------------------*/
                grid.getChildren().get(ControlNum).setEffect(getEffect_1());
//                for( int i=0;i<ControlNum;i++){
//
//                }


                if(event.getCode().getName().equals(KeyCode.ENTER.getName())){
                    System.out.println("ENTER");
                    System.out.println("ContorNum:"+ControlNum);


                    ;

                    switch(ControlNum)
                    {
                        case 1 :
                            StackPane pane = new StackPane();
                            pane.getChildren().add(browserView);
                            pane.setOpacity(1);
                            Scene scene = new Scene(pane);
                            stage.setScene(scene);
                            stage.setAlwaysOnTop(true);
                            stage.setFullScreen(true);
                            stage.show();
                            browser.loadURL("http://data.taagoo.com/pano/20170100254575.html?startscene=scene_15236&");
                            pane.setOnKeyPressed(new EventHandler<KeyEvent>() {
                                @Override
                                public void handle(KeyEvent event) {
//                                    System.out.println(event.getCharacter());
//                                    System.out.println("66666:"+event.getText());
                                    if(event.getCode().getName().equals(KeyCode.ENTER.getName())){
                                        stage.close();
                                    }

                                }
                            });
                            break;
                        case 2 :
                            System.out.println("良好");
                            break;
                        case 3:
                            System.out.println("及格");
                            break;
                        case 4 :
                            System.out.println("你需要再努力努力");
                            break;
                        default :
                            System.out.println("未知等级");
                    }





                }



            }
        });






        a5.getChildren().addAll(b1);

        /*-----------------------------------------------------whale---------------------------------------------------------------*/

        BorderPane bor = new BorderPane();
        bor.setStyle("-fx-background-color: #FFFFFF");

        bor.setTop(hbox);
        bor.setBottom(a2);
        bor.setLeft(a3);
        bor.setRight(a4);
        bor.setCenter(a5);

        /*-----------------------------------------------------whale_layout(可选)---------------------------------------------------------------*/
//        // 设置内边距
//        bor.setPadding(new Insets(10));
//        // 设置 a1 外边距
//        bor.setMargin(a1,new Insets(10));
        // 设置 b 对齐方式 居中
//        bor.setAlignment(b, Pos.CENTER);
//
//        Button bu =(Button)bor.getTop();
//        System.out.println(bu.getText());










        Scene scene = new Scene(bor);
        primaryStage.setScene(scene);
        primaryStage.setTitle("江苏慧明智能科技有限公司");
        primaryStage.getIcons().add(new Image("/icon/icon.png"));
        primaryStage.setAlwaysOnTop(true);
        primaryStage.setFullScreen(true);
        primaryStage.setScene(scene);
        primaryStage.show();

        sc.setPrefHeight(800);



    }
    /*-----------------------------------------------------Effect---------------------------------------------------------------*/
    public Effect getEffect(){

        DropShadow ds = new DropShadow();
        ds.setBlurType(BlurType.GAUSSIAN);
        ds.setColor(Color.valueOf("#000000"));
        ds.setRadius(50);
        return ds;


    }
    public Effect getEffect_1(){

        DropShadow ds = new DropShadow();
        ds.setBlurType(BlurType.GAUSSIAN);
        ds.setColor(Color.valueOf("#FF69B4"));
        ds.setRadius(100);
        return ds;


    }


}



在这里插入图片描述

JavaFX-Support是一个开源项目,致力于为JavaFX提供友好的支持和工具。JavaFX是一个用于构建丰富用户界面的Java库,而JavaFX-Support项目旨在为开发人员提供便利和增强功能,以提高他们在开发JavaFX应用程序时的效率和体验。 JavaFX-Support项目具有以下特点和功能: 1.样式编辑器:JavaFX-Support项目提供了一个样式编辑器,使开发人员能够轻松编辑和定制JavaFX应用程序的视觉样式。通过这个编辑器,开发人员可以直观地调整应用程序的颜色、字体和其他视觉元素,而无需手动编写代码。 2.视觉组件库:JavaFX-Support项目还包含了一个丰富的视觉组件库,开发人员可以直接在应用程序中使用这些组件,而无需自己编写。这些组件可以帮助开发人员快速构建出现频率较高的界面元素,例如按钮、文本框、列表等。 3.布局助手:JavaFX-Support项目还提供了一个布局助手,用于在JavaFX应用程序中进行布局。开发人员可以方便地使用拖放方式调整和排列组件,从而更加灵活地设计界面。 4.调试工具:JavaFX-Support项目还包含了一些调试工具,用于帮助开发人员在开发过程中定位和修复问题。这些工具可以帮助开发人员追踪布局问题、排查异常和提高性能。 总的来说,JavaFX-Support项目是一个强大而实用的工具集,它使得开发人员可以更加便捷地开发和定制JavaFX应用程序。无论是初学者还是有经验的开发人员都可以从中受益,并提高他们在JavaFX开发中的效率和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值