Files
comp1110-ass2/src/comp1110/ass2/gui/Viewer.java
Paul Scott b1a8ce7352 Initial add
2023-03-13 20:34:59 +11:00

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