?? chatframe.java
字號:
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.net.InetSocketAddress;
/**
* Description:
* <br/>Copyright (C), 2008-2010, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
//定義交談的對話框
public class ChatFrame extends JDialog
{
//聊天信息區
JTextArea msgArea = new JTextArea(12 , 45);
//聊天輸入區
JTextField chatField = new JTextField(30);
//發送聊天信息的按鈕
JButton sendBn = new JButton("發送");
//該交談窗口對應的用戶
UserInfo user;
//構造器,用于初始化交談對話框的界面
public ChatFrame(LanChat parent , UserInfo user)
{
super(parent , "和" + user.getName() + "聊天中" , false);
this.user = user;
msgArea.setEditable(false);
add(new JScrollPane(msgArea));
JPanel buttom = new JPanel();
buttom.add(new JLabel("輸入信息:"));
buttom.add(chatField);
buttom.add(sendBn);
add(buttom , BorderLayout.SOUTH);
MyActionListener listener = new MyActionListener();
chatField.addActionListener(listener);
sendBn.addActionListener(listener);
pack();
}
class MyActionListener implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
InetSocketAddress dest = (InetSocketAddress)user.getAddress();
/*在聊友列表中,所有人項的SocketAddress是null*/
//這表明是向所有人發送消息
if (dest == null)
{
LoginFrame.comUtil.broadCast(chatField.getText());
msgArea.setText("您對大家說:"
+ chatField.getText() + "\n" + msgArea.getText());
}
//向私人發送信息
else
{
//獲取發送消息的目的
dest = new InetSocketAddress(dest.getHostName(),
dest.getPort() + 1);
LoginFrame.comUtil.sendSingle(chatField.getText(), dest);
msgArea.setText("您對" + user.getName() + "說:"
+ chatField.getText() + "\n" + msgArea.getText());
}
chatField.setText("");
}
}
//定義向聊天區域添加消息的方法
public void addString(String msg)
{
msgArea.setText(msg + "\n" + msgArea.getText());
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -