71 lines
2.0 KiB
Java
71 lines
2.0 KiB
Java
package comp1110.ass2.gui;
|
|
|
|
import javafx.application.Application;
|
|
import javafx.event.ActionEvent;
|
|
import javafx.event.EventHandler;
|
|
import javafx.scene.Group;
|
|
import javafx.scene.Scene;
|
|
import javafx.scene.control.Button;
|
|
import javafx.scene.control.Label;
|
|
import javafx.scene.control.TextField;
|
|
import javafx.scene.layout.HBox;
|
|
import javafx.stage.Stage;
|
|
|
|
public class Viewer extends Application {
|
|
|
|
private static final int VIEWER_WIDTH = 1200;
|
|
private static final int VIEWER_HEIGHT = 700;
|
|
|
|
private final Group root = new Group();
|
|
private final Group controls = new Group();
|
|
private TextField stateTextField;
|
|
|
|
|
|
/**
|
|
* Given a state string, draw a representation of the state
|
|
* on the screen.
|
|
* <p>
|
|
* This may prove useful for debugging complex states.
|
|
*
|
|
* @param stateString a string representing a game state
|
|
*/
|
|
void displayState(String stateString) {
|
|
// FIXME Task 5
|
|
}
|
|
|
|
/**
|
|
* Create a basic text field for input and a refresh button.
|
|
*/
|
|
private void makeControls() {
|
|
Label playerLabel = new Label("Game State:");
|
|
stateTextField = new TextField();
|
|
stateTextField.setPrefWidth(200);
|
|
Button button = new Button("Refresh");
|
|
button.setOnAction(new EventHandler<ActionEvent>() {
|
|
@Override
|
|
public void handle(ActionEvent e) {
|
|
displayState(stateTextField.getText());
|
|
}
|
|
});
|
|
HBox hb = new HBox();
|
|
hb.getChildren().addAll(playerLabel, stateTextField, button);
|
|
hb.setSpacing(10);
|
|
hb.setLayoutX(50);
|
|
hb.setLayoutY(VIEWER_HEIGHT - 50);
|
|
controls.getChildren().add(hb);
|
|
}
|
|
|
|
@Override
|
|
public void start(Stage primaryStage) throws Exception {
|
|
primaryStage.setTitle("Blue Lagoon Viewer");
|
|
Scene scene = new Scene(root, VIEWER_WIDTH, VIEWER_HEIGHT);
|
|
|
|
root.getChildren().add(controls);
|
|
|
|
makeControls();
|
|
|
|
primaryStage.setScene(scene);
|
|
primaryStage.show();
|
|
}
|
|
}
|