import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
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 UI_ChatBoxJFrame extends JFrame
{
private String name;
private JTextArea messageArea;
private JTextField sendArea;
private JButton sendButton;
private JButton exitButton;
private PrintWriter out;
private JScrollPane scrollPane;
private ButtonListener buttonListener;
public UI_ChatBoxJFrame(String name, String host, int port) throws IOException
{
this(name, new Socket(host, port));
}
public UI_ChatBoxJFrame(String name, Socket socket) throws IOException
{
this.setBounds(400,300,400,300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
this.messageArea = new JTextArea();
this.messageArea.setEditable(false);
this.scrollPane = new JScrollPane(this.messageArea);
this.getContentPane().add(this.scrollPane);
JPanel panel = new JPanel();
this.getContentPane().add(panel,"South");
this.sendArea = new JTextField(20);
panel.add(this.sendArea);
buttonListener = new ButtonListener();
sendButton = new JButton("发送");
panel.add(sendButton);
sendButton.addActionListener(buttonListener);
exitButton = new JButton("离开");
panel.add(exitButton);
exitButton.addActionListener(buttonListener);
this.name = name;
Socket socket1 = socket;
this.out = new PrintWriter(socket1.getOutputStream(),true);
this.out.println(name);
BufferedReader in = new BufferedReader(new InputStreamReader(socket1.getInputStream()));
String context = in.readLine();
messageArea.append("now " + context + "\n");
context = in.readLine();
while(context != null && !context.trim().equals(""))
{
messageArea.append(context + "\n");
context = in.readLine();
}
in.close();
out.close();
socket1.close();
sendButton.setEnabled(false);
exitButton.setEnabled(false);
}
class ButtonListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource() == sendButton)
{
out.println(name + "\n" + sendArea.getText());
messageArea.append("我" + "\n" + sendArea.getText());
sendArea.setText("");
}
if(e.getSource() == exitButton)
{
messageArea.setText("离线\n");
out.println(name + "离线\n");
sendButton.setEnabled(false);
exitButton.setEnabled(false);
}
}
}
public static void main(String[] args) throws IOException
{
new UI_ChatBoxJFrame("啊林","202.119.161.101",6000);
}
}
Java聊天室的UI代码,有点儿小问题
最新推荐文章于 2022-09-15 10:36:06 发布