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;
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");
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.setStyle("-fx-background-color: #FFFFFF");
AnchorPane a3 = new AnchorPane();
a3.setPrefHeight(100);
a3.setPrefWidth(100);
a3.setStyle("-fx-background-color: #FFFFFF");
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");
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);
a5.getChildren().add(grid);
a5.setStyle("-fx-background-color: #FFFFFF");
Button b1 =new Button("button1");
b1.setOpacity(0);
b1.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
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");
}
grid.getChildren().get(ControlNum).setEffect(getEffect_1());
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) {
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);
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);
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);
}
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;
}
}