package finalTest.view;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import finalTest.controller.Camera;
import finalTest.controller.Client;
import finalTest.controller.Message;
import finalTest.controller.MessageType;
import finalTest.model.ConOperate;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.geometry.Insets;
import javafx.geometry.Orientation;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.paint.ImagePattern;
import javafx.scene.paint.Paint;
import javafx.scene.shape.Circle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.FileChooser;
import javafx.stage.FileChooser.ExtensionFilter;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class ChatBox extends Application {
double xOffset = 0;
double yOffset = 0;
private int myqq;
private int friendqq;
Circle myHeadShot = new Circle();// 我的头像
Circle friendHeadShot = new Circle();// 好友的头像
Stage displayInter = new Stage();// 聊天框
Pane displayInterBox = new Pane();
Pane topLabelBar = new Pane();// 聊天框的上标签栏
Pane qqShowPane = new Pane();// qq秀显示框
ScrollPane communicates = new ScrollPane();// 聊天信息显示框
ScrollPane history;// 历史聊天信息
FlowPane chatPane = new FlowPane();// 聊天信息显示框
FlowPane historyChatPane = new FlowPane();// 历史消息显示框
Pane enterContentPane = new Pane();// 聊天信息输入框
TextArea contentfield = new TextArea();// 输入聊天内容框
Text friendId = new Text("廖飞");// 好友的id
HBox friendIdBox = new HBox();
Button chatMinimizes = new Button("—");
Button chatClose = new Button("Ⅹ");
Button closeBtn = new Button("关闭(C)");
Button sendBtn = new Button("发送(S)");
Client client;
ChatBox instance;
private int openHistory = 0;
public ChatBox() {
// TODO Auto-generated constructor stub
instance = this;
}
public ChatBox getInstance() {
return instance;
}
public void start(Stage primaryStage) {
displayInterBox.setPrefSize(1000, 750);
displayInterBox.setStyle("-fx-background-color: #e5e5e5;");
friendId.setStyle("-fx-font: 22 Regular;");
ImageView qqSpaceImg = new ImageView(new Image("file:D:\\img\\qq空间图标.png"));
friendIdBox.getChildren().addAll(friendId, qqSpaceImg);
friendIdBox.setSpacing(5);
friendIdBox.setLayoutX(450);
friendIdBox.setLayoutY(10);
// 最小化和关闭按钮
HBox btnHb = new HBox();
chatMinimizes.setTextFill(Paint.valueOf("#4b4f53"));
chatMinimizes.setFont(Font.font("arial", 15));
chatMinimizes.setStyle("-fx-background-color: transparent;");
chatMinimizes.setPrefSize(40, 40);
chatClose.setTextFill(Paint.valueOf("#4b4f53"));
chatClose.setFont(Font.font("arial", 20));
chatClose.setStyle("-fx-background-color: transparent;");
chatClose.setPrefSize(40, 40);
btnHb.setLayoutX(920);
btnHb.getChildren().addAll(chatMinimizes, chatClose);
topLabelBar.setPrefSize(1000, 50);
topLabelBar.setStyle("-fx-background-color: #989799;");
topLabelBar.getChildren().addAll(friendIdBox, btnHb);
// 视频通话图标
Pane qqVideoCallBox = new Pane();
qqVideoCallBox.setStyle("-fx-background-color: transparent;");
qqVideoCallBox.setPrefSize(800, 60);
ImageView qqVideoCall = new ImageView(new Image("file:D:\\img\\qq视频通话图标.png"));
qqVideoCall.setLayoutX(620);
qqVideoCallBox.getChildren().addAll(qqVideoCall);
qqVideoCallBox.setLayoutY(50);
qqShowPane.setStyle(
"-fx-background-color: transparent;-fx-border-width: 0 0 0 1;-fx-border-style: solid;-fx-border-color: #dbdbdb");
qqShowPane.setPrefSize(200, 700);
ImageView qqshowImg = new ImageView(new Image("file:D:\\img\\qq秀图标.png"));
qqshowImg.setLayoutX(30);
qqshowImg.setLayoutY(50);
qqShowPane.getChildren().addAll(qqshowImg);
qqShowPane.setLayoutX(800);
qqShowPane.setLayoutY(50);
chatPane.setPrefWidth(800);
chatPane.setMinHeight(400);
chatPane.setStyle(
"-fx-background-color: #e5e5e5;-fx-border-width: 0 0 1 0;-fx-border-style: solid;-fx-border-color: #dbdbdb;");
communicates.setContent(chatPane);
communicates.setStyle("-fx-padding: 0;-fx-hbar-policy: never;");// 不显示左右滚动条
communicates.setPrefSize(800, 400);
communicates.setLayoutY(110);
enterContentPane.setPrefSize(800, 240);
enterContentPane.setLayoutY(510);
contentfield.setPrefSize(800, 150);
contentfield.setLayoutY(45);
contentfield.setWrapText(true);// 自动换行
contentfield.setStyle("-fx-background-color: #e5e5e5;-fx-control-inner-background: #e5e5e5;");
closeBtn.setLayoutX(600);
closeBtn.setLayoutY(200);
closeBtn.setPrefSize(80, 30);
closeBtn.setStyle("-fx-background-color: #ededed;");
sendBtn.setLayoutX(700);
sendBtn.setLayoutY(200);
sendBtn.setPrefSize(80, 30);
sendBtn.setStyle("-fx-background-color: #989798;");
enterContentPane.getChildren().addAll(docImg(), contentfield, closeBtn, sendBtn);
displayInterBox.getChildren().addAll(topLabelBar, qqVideoCallBox, communicates, qqShowPane, enterContentPane);
displayInterBox.setOnMousePressed(event -> {
xOffset = event.getSceneX();
yOffset = event.getSceneY();
});
displayInterBox.setOnMouseDragged(event -> {
primaryStage.setX(event.getScreenX() - xOffset);
primaryStage.setY(event.getScreenY() - yOffset);
});
chatMinimizes.setOnMouseEntered(e -> mouseOverChangeColor(chatMinimizes, 1));
chatMinimizes.setOnMouseExited(e -> mouseOutChangeColor(chatMinimizes));
chatClose.setOnMouseMoved(e -> mouseOverChangeColor(chatClose, 2));
chatClose.setOnMouseExited(e -> mouseOutChangeColor(chatClose));
sendBtn.setOnMouseEntered(e -> mouseOverChangeColor(sendBtn, 1));
sendBtn.setOnMouseExited(e -> {
sendBtn.setStyle("-fx-background-color: #989798;");
});
sendBtn.setOnMouseClicked(e -> sendMessage());
qqSpaceImg.setOnMouseClicked(e -> {//打开qq空间
try {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+"https://qzone.qq.com/");
} catch (Exception e2) {
// TODO: handle exception
}
});
/*
* contentfield.setOnKeyPressed(e -> {//设置键盘点击事件ENTER发生消息 if
* (e.getCode().name().equals("ENTER")) { sendMessage(); } });
*/
chatMinimizes.setOnAction(e -> primaryStage.setIconified(true));// 登录窗口最小化
chatClose.setOnAction(e -> primaryStage.hide());// 关闭聊天窗口
closeBtn.setOnAction(e -> primaryStage.hide());// 关闭聊天窗口
Scene scene = new Scene(displayInterBox);
primaryStage.setScene(scene);
primaryStage.initStyle(StageStyle.TRANSPARENT);// 透明标签栏
primaryStage.setResizable(false);// 设置登录窗口大小不可变
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
public void showChatBox() {
start(displayInter);
}
public void mouseOverChangeColor(Button btn, int num) {
switch (num) {
case 1:
btn.setStyle("-fx-background-color: #a6a5a8;");
break;
case 2:
btn.setStyle("-fx-background-color: #f84c4c;");
break;
}
}
public void mouseOutChangeColor(Button btn) {
btn.setStyle("-fx-background-color: t
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
qq聊天系统.zip (49个子文件)
qq聊天系统.sql 6KB
img
图层 1.png 551B
p9.png 725B
添加好友图标.png 1KB
其他应用图标.png 751B
p2.png 748B
马尔代夫.jpg 16KB
p7.png 902B
小狗.jpg 122KB
p3.png 1KB
其他.png 382B
搜索图标.png 5KB
qq密码图标.png 435B
qq视频通话图标.png 2KB
p4.png 441B
p6.png 645B
腾讯文档图标.png 1KB
p8.png 498B
qq白色企鹅.png 1KB
qq文件夹.png 3KB
qq二维码.png 962B
qq账号图标.png 452B
p1.png 780B
其他游戏图标.png 2KB
qq秀图标.png 50KB
头像.jpg 16KB
Сè.jpg 226KB
qq空间图标.png 919B
qq音乐图标.png 1KB
p10.png 646B
p5.png 800B
qq游戏图标.png 2KB
test
src
finalTest
model
ConOperate.java 8KB
MySqlDAO.java 883B
view
AddFriendPane.java 7KB
DisplayInterface.java 13KB
Login.java 7KB
ApplyNewsPane.java 4KB
ChatBox.java 19KB
RegisterPane.java 3KB
controller
UserThread.java 3KB
MessageType.java 239B
Server.java 1KB
MsgData.java 157B
Camera.java 2KB
Message.java 1KB
Client.java 4KB
readInfoThread.java 1KB
mysql-connector-java-8.0.25.jar 2.32MB
共 49 条
- 1
junwuhuan
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0