Prepare JavaFX integration
* Added JavaFX and FXML dependencies to pom.xml and module-info.java * Added Startup Application * Added ChatScene with ChatSceneController
This commit is contained in:
		
							
								
								
									
										27
									
								
								src/main/java/envoy/client/ui/ChatScene.fxml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/main/java/envoy/client/ui/ChatScene.fxml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
|  | ||||
| <?import javafx.scene.control.Button?> | ||||
| <?import javafx.scene.control.Label?> | ||||
| <?import javafx.scene.control.ListView?> | ||||
| <?import javafx.scene.layout.ColumnConstraints?> | ||||
| <?import javafx.scene.layout.GridPane?> | ||||
| <?import javafx.scene.layout.RowConstraints?> | ||||
|  | ||||
| <GridPane id="recipientLabel" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="envoy.client.ui.ChatSceneController"> | ||||
| 	<columnConstraints> | ||||
| 		<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> | ||||
| 		<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> | ||||
| 	</columnConstraints> | ||||
| 	<rowConstraints> | ||||
| 		<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> | ||||
| 		<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> | ||||
| 		<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> | ||||
| 	</rowConstraints> | ||||
| 	<children> | ||||
| 		<ListView id="userList" prefHeight="211.0" prefWidth="300.0" GridPane.rowIndex="2" /> | ||||
| 		<Label text="Label" /> | ||||
| 		<Button id="settingsButton" mnemonicParsing="false" text="Settings" GridPane.columnIndex="1" /> | ||||
| 		<ListView id="messageList" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="1" /> | ||||
| 		<Button id="postButton" mnemonicParsing="false" text="Post" GridPane.columnIndex="1" GridPane.rowIndex="2" /> | ||||
| 	</children> | ||||
| </GridPane> | ||||
							
								
								
									
										30
									
								
								src/main/java/envoy/client/ui/ChatSceneController.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/main/java/envoy/client/ui/ChatSceneController.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| package envoy.client.ui; | ||||
|  | ||||
| import java.util.logging.Logger; | ||||
|  | ||||
| import envoy.util.EnvoyLog; | ||||
| import javafx.event.ActionEvent; | ||||
| import javafx.fxml.FXML; | ||||
|  | ||||
| /** | ||||
|  * Project: <strong>envoy-client</strong><br> | ||||
|  * File: <strong>ChatSceneController.java</strong><br> | ||||
|  * Created: <strong>26.03.2020</strong><br> | ||||
|  *  | ||||
|  * @author Kai S. K. Engelbart | ||||
|  * @since Envoy Client v0.1-beta | ||||
|  */ | ||||
| public class ChatSceneController { | ||||
|  | ||||
| 	private static final Logger logger = EnvoyLog.getLogger(ChatSceneController.class); | ||||
|  | ||||
| 	@FXML | ||||
| 	public void postButtonClicked(ActionEvent e) { | ||||
| 		logger.info("Post Button clicked."); | ||||
| 	} | ||||
|  | ||||
| 	@FXML | ||||
| 	public void settingsButtonClicked(ActionEvent e) { | ||||
| 		logger.info("Settings Button clicked."); | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										34
									
								
								src/main/java/envoy/client/ui/Startup.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								src/main/java/envoy/client/ui/Startup.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| package envoy.client.ui; | ||||
|  | ||||
| import javafx.application.Application; | ||||
| import javafx.fxml.FXMLLoader; | ||||
| import javafx.scene.Scene; | ||||
| import javafx.scene.layout.GridPane; | ||||
| import javafx.stage.Stage; | ||||
|  | ||||
| /** | ||||
|  * Project: <strong>envoy-client</strong><br> | ||||
|  * File: <strong>Startup.java</strong><br> | ||||
|  * Created: <strong>26.03.2020</strong><br> | ||||
|  *  | ||||
|  * @author Kai S. K. Engelbart | ||||
|  * @since Envoy Client v0.1-beta | ||||
|  */ | ||||
| public final class Startup extends Application { | ||||
|  | ||||
| 	/** | ||||
| 	 * {@inheritDoc} | ||||
| 	 */ | ||||
| 	@Override | ||||
| 	public void start(Stage primaryStage) throws Exception { | ||||
| 		var	loader		= new FXMLLoader(getClass().getResource("ChatScene.fxml")); | ||||
| 		var	anchorPane	= loader.<GridPane>load(); | ||||
| 		 | ||||
| 		var chatScene = new Scene(anchorPane); | ||||
| 		primaryStage.setTitle("Envoy"); | ||||
| 		primaryStage.setScene(chatScene); | ||||
| 		primaryStage.show(); | ||||
| 	} | ||||
|  | ||||
| 	public static void main(String[] args) { launch(args); } | ||||
| } | ||||
| @@ -14,4 +14,8 @@ module envoy { | ||||
| 	requires transitive java.logging; | ||||
| 	requires transitive java.naming; | ||||
| 	requires transitive java.prefs; | ||||
| 	requires javafx.controls; | ||||
| 	requires javafx.fxml; | ||||
|  | ||||
| 	opens envoy.client.ui to javafx.graphics, javafx.fxml; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user