blob: 7fa9fd6243ffae048f8471bddb21f1be7ed89388 (
plain)
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
package tesseract.chatbox;
import java.awt.BorderLayout;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Observable;
import java.util.Observer;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Chatbox extends JFrame implements Observer {
private final JPanel textPanel;
private final JScrollPane scroller;
private final JTextArea textArea;
private final JButton submitButton;
private final JTextField chatField;
private String myName;
private String toSend;
private StringBuilder chats;
public Chatbox() {
textPanel = new JPanel(new BorderLayout());
textArea = new JTextArea(10, 80);
textArea.setEditable(false);
scroller = new JScrollPane(textArea);
submitButton = new JButton("Submit");
chatField = new JTextField();
this.setName("Chat");
chats = new StringBuilder();
buildFrame();
attachListeners();
}
private void attachListeners() {
submitButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
//TODO: SEND MESSAGE IN chatField.
if (arg0.getSource().equals(submitButton)) {
toSend = chatField.getText();
chatField.setText("");
// PeerMessage message = new PeerMessage(Message, null, toSend);
// Send(message);
}
}
});
//chatField.addKeyListener()
}
public boolean setMyName(final String theName) {
myName = theName;
return myName.equals(theName);
}
private void buildFrame() {
textPanel.add(scroller, BorderLayout.CENTER);
JPanel southPanel = new JPanel();
GroupLayout layout = new GroupLayout(southPanel);
layout.setHorizontalGroup(
layout.createSequentialGroup()
.addComponent(chatField)
.addComponent(submitButton)
);
textPanel.add(southPanel, BorderLayout.SOUTH);
this.add(textPanel);
this.pack();
this.setVisible(false);
}
@Override
public void update(Observable arg0, Object arg1) {
String inc = " ";
String source = " ";
// TODO Listen for PeerMessage with string in it.
/*
if (((PeerMessage) arg0).getExtra().getClass == inc.getClass()) {
inc = (PeerMessage) arg0).getExtra();
source = ((PeerMessage) arg0).getPeer.getName();
chats.append("\n");
chats.append(source + ": " + inc);
}//*/
}
private class ChatFieldListener extends KeyAdapter {
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == 10) {
toSend = chatField.getText();
chatField.setText("");
}
}
}
}
|