You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

158 lines
3.5 KiB

package view;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
/**
* This DialogBox contains networking option for Connect4 networking game.
*
* @author Weixiang Zhang
*
*/
public class DialogBox extends Stage{
private Button ok;
private RadioButton rB1;
private RadioButton rB2;
private RadioButton rB3;
private RadioButton rB4;
private TextField serverName;
private TextField portNumber;
/**
* True if the server option is checked and false otherwise.
*
* @return True if the server option is checked and false otherwise.
*/
public boolean serverIsCheck() {
return rB1.isSelected();
}
/**
* True if human option is checked and false otherwise.
*
* @return True if human option is checked and false otherwise.
*/
public boolean humanIsCheck() {
return rB3.isSelected();
}
/**
*
* @return The server's name in the text field.
*/
public String getServerName() {
return serverName.getText();
}
/**
*
* @return The port number in the text field.
*/
public int getPort() {
return Integer.parseInt(portNumber.getText());
}
/**
* Returns the ok button object.
*
* @return Returns the ok button object.
*/
public Button getOk() {
return ok;
}
/**
* Constructs a dialog box that contains networking options.
*/
public DialogBox() {
super();
GridPane gridPane = new GridPane();
gridPane.setVgap(25);
gridPane.setPadding(new Insets(15, 15, 15, 15));
Scene newScene = new Scene(gridPane);
HBox hBox1 = new HBox();
hBox1.setSpacing(8);
Label label1 = new Label("Create: ");
ToggleGroup group1 = new ToggleGroup();
rB1 = new RadioButton("Server ");
rB2 = new RadioButton("Client");
rB1.setToggleGroup(group1);
rB2.setToggleGroup(group1);
hBox1.getChildren().addAll(label1,rB1,rB2);
gridPane.add(hBox1, 0, 0);
VBox vBox1 = new VBox();
vBox1.setSpacing(25);
HBox hBox2 = new HBox();
hBox2.setSpacing(8);
Label label2 = new Label("Play as: ");
ToggleGroup group2 = new ToggleGroup();
rB3 = new RadioButton("Human ");
rB4 = new RadioButton("Computer");
rB3.setToggleGroup(group2);
rB4.setToggleGroup(group2);
hBox2.getChildren().add(label2);
hBox2.getChildren().add(rB3);
hBox2.getChildren().add(rB4);
HBox hBox3 = new HBox();
hBox3.setSpacing(8);
Label server = new Label("Server");
Label port = new Label("Port");
serverName = new TextField("localhost");
portNumber = new TextField("4000");
hBox3.getChildren().addAll(server, serverName, port, portNumber);
vBox1.getChildren().addAll(hBox2, hBox3);
gridPane.add(vBox1, 0, 1);
HBox hBox4 = new HBox();
hBox4.setSpacing(8);
ok = new Button("OK");
Button cancel = new Button("Cancel");
hBox4.getChildren().addAll(ok, cancel);
gridPane.add(hBox4, 0, 2);
cancel.setOnAction(ActionEvent -> {
this.close();
});
this.setScene(newScene);
}
/**
* True if client button is checked.
*
* @return True if client button is checked and false otherwise.
*/
public boolean clientIsCheck() {
return rB2.isSelected();
}
/**
* True if computer button is checked.
*
* @return True if computer button is checked.
*/
public boolean computerIsCheck() {
return rB4.isSelected();
}
}