|
@@ -1,7 +1,6 @@
|
|
|
package space.anyi.chatClient.ui.controller;
|
|
package space.anyi.chatClient.ui.controller;
|
|
|
|
|
|
|
|
import javafx.application.Platform;
|
|
import javafx.application.Platform;
|
|
|
-import javafx.collections.FXCollections;
|
|
|
|
|
import javafx.collections.ObservableList;
|
|
import javafx.collections.ObservableList;
|
|
|
import javafx.event.ActionEvent;
|
|
import javafx.event.ActionEvent;
|
|
|
import javafx.fxml.FXML;
|
|
import javafx.fxml.FXML;
|
|
@@ -97,11 +96,15 @@ public class ClientController implements Initializable {
|
|
|
if (message.getType() == Message.MessageType.USER) {
|
|
if (message.getType() == Message.MessageType.USER) {
|
|
|
messageUI.setOnContextMenuRequested(event->{
|
|
messageUI.setOnContextMenuRequested(event->{
|
|
|
ContextMenu contextMenu = new ContextMenu();
|
|
ContextMenu contextMenu = new ContextMenu();
|
|
|
|
|
+ contextMenu.setStyle("-fx-background-color: linear-gradient(to bottom, #667eea 0%, #764ba2 100%); -fx-background-radius: 10; -fx-border-radius: 10; -fx-border-color: rgba(255,255,255,0.2); -fx-effect: dropshadow(gaussian, rgba(0,0,0,0.3), 10, 0.5, 0, 2);");
|
|
|
//自己的可以触发撤回
|
|
//自己的可以触发撤回
|
|
|
//别人的可以私聊
|
|
//别人的可以私聊
|
|
|
MenuItem item = null;
|
|
MenuItem item = null;
|
|
|
if (message.getSource().equals(Client.name)) {
|
|
if (message.getSource().equals(Client.name)) {
|
|
|
item = new MenuItem("撤回");
|
|
item = new MenuItem("撤回");
|
|
|
|
|
+ item.setStyle("-fx-text-fill: white; -fx-font-weight: bold; -fx-background-color: transparent; -fx-padding: 8 15 8 15;");
|
|
|
|
|
+ //item.setOnMouseEntered(e -> item.setStyle("-fx-text-fill: white; -fx-font-weight: bold; -fx-background-color: rgba(255,255,255,0.2); -fx-padding: 8 15 8 15;"));
|
|
|
|
|
+ //item.setOnMouseExited(e -> item.setStyle("-fx-text-fill: white; -fx-font-weight: bold; -fx-background-color: transparent; -fx-padding: 8 15 8 15;"));
|
|
|
item.setOnAction(e->{
|
|
item.setOnAction(e->{
|
|
|
Alert alert = new Alert(Alert.AlertType.WARNING);
|
|
Alert alert = new Alert(Alert.AlertType.WARNING);
|
|
|
alert.setTitle("警告");
|
|
alert.setTitle("警告");
|
|
@@ -117,6 +120,9 @@ public class ClientController implements Initializable {
|
|
|
});
|
|
});
|
|
|
}else{
|
|
}else{
|
|
|
item = new MenuItem("私聊");
|
|
item = new MenuItem("私聊");
|
|
|
|
|
+ item.setStyle("-fx-text-fill: white; -fx-font-weight: bold; -fx-background-color: transparent; -fx-padding: 8 15 8 15;");
|
|
|
|
|
+ //item.setOnMouseEntered(e -> item.setStyle("-fx-text-fill: white; -fx-font-weight: bold; -fx-background-color: rgba(255,255,255,0.2); -fx-padding: 8 15 8 15;"));
|
|
|
|
|
+ //item.setOnMouseExited(e -> item.setStyle("-fx-text-fill: white; -fx-font-weight: bold; -fx-background-color: transparent; -fx-padding: 8 15 8 15;"));
|
|
|
item.setOnAction(actionEvent->{
|
|
item.setOnAction(actionEvent->{
|
|
|
//创建私聊场景
|
|
//创建私聊场景
|
|
|
FXMLLoader fxmlLoader = new FXMLLoader();
|
|
FXMLLoader fxmlLoader = new FXMLLoader();
|
|
@@ -168,10 +174,10 @@ public class ClientController implements Initializable {
|
|
|
//用背景颜色区分自己的消息
|
|
//用背景颜色区分自己的消息
|
|
|
if (Client.name.equals(message.getSource())){
|
|
if (Client.name.equals(message.getSource())){
|
|
|
//自己的
|
|
//自己的
|
|
|
- result.setStyle("-fx-background-radius: 100;-fx-background-color: #3EB575");
|
|
|
|
|
|
|
+ result.setStyle("-fx-background-radius: 15;-fx-background-color: linear-gradient(to right, #667eea 0%, #764ba2 100%); -fx-padding: 10; -fx-effect: dropshadow(gaussian, rgba(0,0,0,0.3), 10, 0.5, 0, 2);");
|
|
|
}else{
|
|
}else{
|
|
|
//别人的
|
|
//别人的
|
|
|
- result.setStyle("-fx-background-radius: 100;-fx-background-color: #2E2E2E");
|
|
|
|
|
|
|
+ result.setStyle("-fx-background-radius: 15;-fx-background-color: linear-gradient(to right, #4facfe 0%, #00f2fe 100%); -fx-padding: 10; -fx-effect: dropshadow(gaussian, rgba(0,0,0,0.3), 10, 0.5, 0, 2);");
|
|
|
}
|
|
}
|
|
|
head.setPrefWidth(width);
|
|
head.setPrefWidth(width);
|
|
|
head.setPrefHeight(height-15);
|
|
head.setPrefHeight(height-15);
|
|
@@ -180,16 +186,18 @@ public class ClientController implements Initializable {
|
|
|
name.setPrefHeight(height - 15);
|
|
name.setPrefHeight(height - 15);
|
|
|
name.setTextFill(Color.WHITE);
|
|
name.setTextFill(Color.WHITE);
|
|
|
name.setAlignment(Pos.CENTER);
|
|
name.setAlignment(Pos.CENTER);
|
|
|
|
|
+ name.setStyle("-fx-font-weight: bold; -fx-font-size: 12;");
|
|
|
|
|
|
|
|
content.setPrefWidth(width - 100);
|
|
content.setPrefWidth(width - 100);
|
|
|
content.setPrefHeight(height - 15);
|
|
content.setPrefHeight(height - 15);
|
|
|
content.setTextFill(Color.WHITE);
|
|
content.setTextFill(Color.WHITE);
|
|
|
|
|
+ content.setStyle("-fx-font-size: 12; -fx-wrap-text: true;");
|
|
|
|
|
|
|
|
time.setPrefWidth(width);
|
|
time.setPrefWidth(width);
|
|
|
time.setPrefHeight(15);
|
|
time.setPrefHeight(15);
|
|
|
time.setTextFill(Color.GRAY);
|
|
time.setTextFill(Color.GRAY);
|
|
|
time.setAlignment(Pos.CENTER);
|
|
time.setAlignment(Pos.CENTER);
|
|
|
-
|
|
|
|
|
|
|
+ time.setStyle("-fx-font-size: 10;");
|
|
|
|
|
|
|
|
//组装
|
|
//组装
|
|
|
head.getChildren().addAll(name, content);
|
|
head.getChildren().addAll(name, content);
|
|
@@ -228,8 +236,7 @@ public class ClientController implements Initializable {
|
|
|
label.setMinHeight(30);
|
|
label.setMinHeight(30);
|
|
|
label.prefHeight(30);
|
|
label.prefHeight(30);
|
|
|
label.setAlignment(Pos.CENTER);
|
|
label.setAlignment(Pos.CENTER);
|
|
|
- label.setStyle("-fx-background-color: #363636; -fx-background-radius: 50;");
|
|
|
|
|
- label.setTextFill(Color.WHITE);
|
|
|
|
|
|
|
+ label.setStyle("-fx-background-color: linear-gradient(to bottom, #667eea 0%, #764ba2 100%); -fx-background-radius: 15; -fx-text-fill: white; -fx-font-weight: bold; -fx-effect: dropshadow(gaussian, rgba(0,0,0,0.2), 5, 0.3, 0, 1);");
|
|
|
return label;
|
|
return label;
|
|
|
}
|
|
}
|
|
|
|
|
|