diff --git a/src/main/java/com/zhangmeng/tools/controller/ChatAppImplController.java b/src/main/java/com/zhangmeng/tools/controller/ChatAppImplController.java index 79e91c9..2d5d86d 100644 --- a/src/main/java/com/zhangmeng/tools/controller/ChatAppImplController.java +++ b/src/main/java/com/zhangmeng/tools/controller/ChatAppImplController.java @@ -15,7 +15,9 @@ import javafx.scene.control.*; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.KeyCode; +import javafx.scene.layout.AnchorPane; import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; import javafx.scene.paint.Paint; import javafx.scene.text.Font; import javafx.util.Callback; @@ -27,6 +29,7 @@ import org.java_websocket.drafts.Draft_6455; import org.java_websocket.handshake.ServerHandshake; import java.net.URI; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -34,6 +37,12 @@ import java.util.Map; @Slf4j public class ChatAppImplController { + @FXML + public AnchorPane log_root; + + @FXML + public ScrollPane log_scroll; + public enum Type{ ws("ws"), wss("wss") @@ -95,8 +104,53 @@ public class ChatAppImplController { }); file_button.setOnAction(event -> getChatFriendList()); init_netty_client(); + + log_root.prefWidthProperty().bind(log_scroll.widthProperty().subtract(15)); + log_root.prefHeightProperty().bind(log_scroll.heightProperty()); + + create_chat_items(); + } + //eg + private void create_chat_items() { + + for (int i = 0; i < 20; i++) { + String friend_name = i + "friend_name1111111111111111111111111"; + String content = i +"content" ; + String time = "2021-01-01 10:00:00"; + HBox hBox = create_chat_item(friend_name, content, time); + log_root.getChildren().add(hBox); + AnchorPane.setTopAnchor(hBox, 35.0 * + i); + if (i%2 == 0){ + hBox.setAlignment(Pos.CENTER_RIGHT); + AnchorPane.setRightAnchor(hBox, 0.0); + hBox.setStyle("-fx-background-color: #c2e6c5;-fx-border-radius: 10px;-fx-background-radius: 10px"); + }else { + hBox.setStyle("-fx-background-color: white;-fx-border-radius: 10px;-fx-background-radius: 10px"); + hBox.setAlignment(Pos.CENTER_LEFT); + AnchorPane.setLeftAnchor(hBox, 0.0); + } + } + + } + + private HBox create_chat_item(String friend_name, String content, String time) { + HBox hBox = new HBox(10); + //hBox.setAlignment(Pos.CENTER); + + Label label = new Label(friend_name + " : " + content); + label.setWrapText(true); + label.setTextFill(Paint.valueOf("#000000")); + label.setFont(Font.font(15)); + label.setPrefWidth(200); +// label.setPrefHeight(35); + hBox.getChildren().add(new Label(time)); + hBox.getChildren().add(label); + return hBox; + } + + public void init_netty_client(){ if (webSocketClient == null) { webSocketClient(ChatAppImplController.Type.ws, netty_host, netty_port, "/websocket", "userId=1&source=pc"); diff --git a/src/main/resources/fxml/chat-app-impl.fxml b/src/main/resources/fxml/chat-app-impl.fxml index 67b28a9..655c885 100644 --- a/src/main/resources/fxml/chat-app-impl.fxml +++ b/src/main/resources/fxml/chat-app-impl.fxml @@ -2,14 +2,15 @@ + - + - - + + + + + + + + + -