Commit ae6c69ff authored by mrsl2000's avatar mrsl2000

now only i commit actionlistener

parents
import javax.swing.*;
import java.awt.*;
public class ChatArea extends JTextArea {
public ChatArea(){
super(10 , 30);
setVisible(true);
}
public void addMessage(String userName , String Message){
this.append(userName + " : " + Message + "\n");
}
}
import javax.swing.*;
import javax.swing.border.EtchedBorder;
import java.awt.*;
public class ChatRoomGUI extends JFrame {
private final String WINDOWS_TITLE = "AUT Chat Room";
private final int WIDTH = 500, HEIGHT = 500;
private final int X = 100, Y = 100;
private ChatArea chatBox = new ChatArea();
private JPanel users = new JPanel();
private ParticipantArea user = new ParticipantArea();
private MessageArea messageArea = new MessageArea();
private JPanel msgArea = new JPanel();
public ChatRoomGUI(){
super();
this.setTitle(WINDOWS_TITLE);
this.setSize(WIDTH, HEIGHT);
this.add(new JScrollPane().add(chatBox) ,BorderLayout.CENTER );
chatBox.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
users.setLayout(new GridLayout(2,1));
users.add(user.getLabel());
users.add(user.getList());
this.add(users , BorderLayout.WEST);
msgArea.setLayout(new GridLayout(1,2));
msgArea.add(new JScrollPane().add(messageArea));
msgArea.add(messageArea.getBtn());
this.add(msgArea , BorderLayout.PAGE_END);
users.setVisible(true);
this.setLocation(X, Y);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public MessageArea getMessageArea() {
return messageArea;
}
public void addNewMessage(String name , String message){
chatBox.addMessage(name , message);
}
public void addNewUser(String name){
user.addUser(name);
}
}
import network.Network;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
public class Logic implements ActionListener {
private static UsernameFrame usernamebox;
public void actionPerformed(ActionEvent e) {
String user = usernamebox.textField.getText();
usernamebox.setVisible(false);
ChatRoomGUI chatRoom = new ChatRoomGUI();
chatRoom.addNewUser(user);
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = chatRoom.getMessageArea().getText();
Network network = new Network();
network.send(text);
try {
chatRoom.addNewMessage(user , network.receive());
} catch (IOException e1) {
e1.printStackTrace();
}
chatRoom.getMessageArea().setText("");
}
};
chatRoom.getMessageArea().addActionListener(listener);
chatRoom.getMessageArea().getBtn().addActionListener(listener);
}
public static void main(String[] args) {
Logic.usernamebox = new UsernameFrame();
}
}
import javax.swing.*;
public class MessageArea extends JTextField {
private JButton btn;
public MessageArea(){
super();
btn = new JButton("Send");
this.setEditable(true);
this.setVisible(true);
}
public JButton getBtn() {
return btn;
}
}
import javax.swing.*;
public class ParticipantArea extends JList {
private JLabel label;
private DefaultListModel<String> listOfUsers = new DefaultListModel<>();
private JList<String> list = new JList<>(listOfUsers);
public ParticipantArea(){
label = new JLabel("Online User");
this.setVisible(true);
}
public JLabel getLabel() {
return label;
}
public JList<String> getList() {
return list;
}
public void addUser(String name){
listOfUsers.addElement(name);
}
public DefaultListModel<String> getListOfUsers() {
return listOfUsers;
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class UsernameFrame extends JFrame {
private static final int WIDTH = 300, HEIGHT = 100;
JTextField textField;
JButton btn;
public UsernameFrame(){
super();
this.setLayout(new BorderLayout());
JLabel label = new JLabel("Pick a Name");
add(label , BorderLayout.PAGE_START);
textField = new JTextField();
add(textField , BorderLayout.CENTER);
btn = new JButton("Na be intellij");
add(btn , BorderLayout.PAGE_END);
setSize(WIDTH , HEIGHT);
setVisible(true);
Logic logic = new Logic();
btn.addActionListener(logic);
textField.addActionListener(logic);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment