Java编程实践
用Java写一个带界面的网络聊天程序
基本实现思路: 首先得用Java Swing 编程写一个聊天界面,该界面需要包含以下元素
- 带滚轮的文本区域(显示聊天记录)
- 待输入的文本区域(输入聊天内容)
- 发送按钮
聊天界面主要的就这三大组件
实现步骤,用一个JScrollPane
中间层容器来装一个文本框原子组件,该文本框设置为不可编辑,还要定义一个JPanel
中间容器来装两个原子组件Button
和JTextField
,就是我们的输入文本框和发送按钮,然后再给Button
和JTextField
注册一个监听器,然后实现对应的响应函数,这里发生的是ActionListener
,所以要实现的响应函数是actionPerformed
super(ID);
myID = ID;
this.port = port;
ta = new JTextArea();
ta.setEditable(false);
sp = new JScrollPane(ta);
this.setSize(330,400);
this.setResizable(false);
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e)
{
System.out.println("UI error");
}
this.getContentPane().add(sp,"Center");
p = new JPanel();
this.getContentPane().add(p,"South");
send = new JButton("发送");
tf = new JTextField(20);
tf.requestFocus();
p.add(tf);
p.add(send);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
send.addActionListener(this);
tf.addActionListener(this);
上面的代码就是实现图形界面的完整代码,看不懂的可以去看一下Java Swing编程
实现网络聊天的另一个关键步骤就是建立网络连接
网络连接中有客户端和服务器,我们需要分别实现这两个端
客户端只要构建一个socket对象,然后向目标ip地址以及对应端口号发起连接就可以了
try
{
mySocket=new Socket(IP,port); //目标IP地址和对应的端口号
os = new PrintWriter(mySocket.getOutputStream());
//获得输出流,以便将信息发送到目标地址
is = new BufferedReader(new