-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathchatPane.java
90 lines (80 loc) · 2.08 KB
/
chatPane.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import javafx.application.*;
import javafx.event.*;
import javafx.geometry.Pos;
import javafx.scene.input.KeyCode;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import java.util.LinkedList;
public class chatPane extends BorderPane{
private chat chat;
private VBox messages;
private TextField text;
private Button send;
public void close(){
chat.close();
}
public chatPane(){
super();
getStyleClass().add("root");
messages=new VBox();
text=new TextField();
text.getStyleClass().add("tofill");
send = new Button();
send.setText("Send");
chat = new chat(this);
send.setOnMouseClicked(e->{
chat.sendMessage(text.getText());
text.setText("");
});
HBox bas = new HBox();
bas.getStyleClass().add("hbox");
bas.getChildren().addAll(text,send);
setBottom(bas);
setTop(messages);
this.setOnKeyPressed(event -> {
if(event.getCode()== KeyCode.ENTER){
chat.sendMessage(text.getText());
text.setText("");
}
});
getStylesheets().add("css/chat.css");
}
public void initHost(String name){
chat.initHost(name);
}
public void initClient(String name, String addr){
chat.initClient(name,addr);
}
public void addMessage(String str){
Label lab = new Label(str);
lab.getStyleClass().add("messages");
messages.getChildren().add(lab);
}
public void styleMessage(String str){
String debut="";
String fin="";
boolean flag = true;
for(int i=0; i<str.length(); i++){
if(flag){
if(str.charAt(i)==':') flag=false;
debut+=str.charAt(i)+"";
}else fin+=str.charAt(i)+"";
}
Label deb=new Label(debut);
deb.getStyleClass().add("deb");
Label end=new Label(fin);
end.getStyleClass().add("end");
HBox align=new HBox();
align.getChildren().addAll(deb,end);
messages.getChildren().add(align);
}
public void miseAjour(){
messages.getChildren().clear();
LinkedList<String> m=chat.getMessages();
for(int i=Math.max(0,m.size()-20);i<m.size();i++ ){
styleMessage(m.get(i));
}
}
}