?? 705b4cd7805b001d16adb19ccac13ab7
字號:
package notepad;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class HappyChat extends JFrame implements ItemListener, ActionListener,ListSelectionListener {
JPanel pnlMain;
JMenuBar mbMain;
JMenu mnuSystem,mnuHelp;
JMenuItem mnuiCls,mnuiSave,mnuiClock,mnuiExit,
mnuiContent,mnuiIndex,mnuiAbout;
JLabel lblUser,lblNumber,lblInfo;
JLabel lblYou,lblContent,lblFile;
DefaultListModel dlmUser;
JList lstUser;
JTextArea taInfo;
JScrollPane jspInfo;
JComboBox cmbUser;
JCheckBox ckbSilent;
JTextField txtContent,txtFile;
JButton btnSend,btnSave,btnExit,btnCls,btnClock,
btnSendFile,btnBrowse;
//構造器部分
public HappyChat()
{
//組件初始化
mbMain=new JMenuBar();
pnlMain=new JPanel(null);
setContentPane(pnlMain);
mnuSystem=new JMenu("系統(S)");
mnuSystem.setMnemonic(KeyEvent.VK_S);
mnuHelp=new JMenu("幫助(H)");
mnuHelp.setMnemonic(KeyEvent.VK_H);
mbMain.add(mnuSystem);
mbMain.add(mnuHelp);
lblUser=new JLabel("【在線用戶列表】");
lblNumber=new JLabel("在線人數:");
lblInfo=new JLabel("【聊天信息】");
lblYou=new JLabel("你對:");
lblContent=new JLabel("聊天內容:");
lblFile=new JLabel("附件:");
dlmUser=new DefaultListModel();
dlmUser.addElement("張三");
dlmUser.addElement("李四");
dlmUser.addElement("liuzc");
dlmUser.addElement("wangym");
lstUser=new JList(dlmUser);
lstUser.setSelectedIndex(0);
lstUser.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lblNumber.setText(lblNumber.getText()+String.valueOf(dlmUser.getSize()));
taInfo=new JTextArea();
jspInfo=new JScrollPane(taInfo);
taInfo.append("【你】對【所有人】說:大家好!");
taInfo.append("\n【liuzc】說:大家好!");
taInfo.setEditable(false);
final String strUser[]={"所有人","張三","李四","劉德華","張學友","劉亦菲"};
cmbUser=new JComboBox(strUser);
ckbSilent=new JCheckBox("私聊");
ckbSilent.setEnabled(false);
txtContent=new JTextField(200);
txtFile=new JTextField(300);
btnSend=new JButton("發送(N)");
btnSave=new JButton("保存(S)");
btnExit=new JButton("退出(X)");
btnCls=new JButton("清屏(C)");
btnClock=new JButton("時鐘(T)");
btnSendFile=new JButton("發送文件(F)");
btnBrowse=new JButton("瀏覽...");
//設置按鈕快捷鍵
btnSend.setMnemonic('N');
btnSave.setMnemonic('S');
btnExit.setMnemonic('X');
btnCls.setMnemonic('C');
btnClock.setMnemonic('T');
btnSendFile.setMnemonic('F');
//設置組件事件
btnSend.addActionListener(this);
btnCls.addActionListener(this);
btnExit.addActionListener(this);
lstUser.addListSelectionListener(this);
cmbUser.addItemListener(this);
//設置窗體背景圖片
Icon logo=new ImageIcon("E:/java/images/chat.jpg");
JLabel lblLogo=new JLabel(logo);
setTitle("聊天室(HappyChar)");
Toolkit tk=Toolkit.getDefaultToolkit();
Image img=tk.getImage("E:/java/images/appico.jpg");
this.setIconImage(img);
//添加組件
pnlMain.add(lblUser);
pnlMain.add(lblNumber);
pnlMain.add(lblInfo);
pnlMain.add(lblYou);
pnlMain.add(lblContent);
pnlMain.add(lblFile);
pnlMain.add(lstUser);
pnlMain.add(jspInfo);
pnlMain.add(cmbUser);
pnlMain.add(ckbSilent);
pnlMain.add(txtContent);
pnlMain.add(txtFile);
pnlMain.add(btnSend);
pnlMain.add(btnSave);
pnlMain.add(btnExit);
pnlMain.add(btnCls);
pnlMain.add(btnClock);
pnlMain.add(btnSendFile);
pnlMain.add(btnBrowse);
pnlMain.add(lblLogo);
pnlMain.add(btnSend);
//設置組件位置
lblLogo.setBounds(0,0,600,400);
lblUser.setBounds(5,10,120,25);
lblNumber.setBounds(140, 10, 80, 25);
lblInfo.setBounds(240, 10, 80, 25);
lstUser.setBounds(5, 40, 200, 280);
jspInfo.setBounds(210, 40, 380, 280);
lblYou.setBounds(8, 320, 40, 30);
cmbUser.setBounds(45, 325, 80, 20);
ckbSilent.setBounds(130, 325, 60, 20);
lblContent.setBounds(200, 320, 70, 30);
txtContent.setBounds(270, 325, 200, 20);
lblFile.setBounds(8,345,40,30);
txtFile.setBounds(45,350,300,20);
btnSend.setBounds(500,325,80,20);
btnSave.setBounds(500,350,80,20);
btnExit.setBounds(500,375,80,20);
btnCls.setBounds(400,350,80,20);
btnClock.setBounds(400,375,80,20);
btnBrowse.setBounds(155, 375, 80, 20);
btnSendFile.setBounds(225, 375, 120, 20);
//btnSend.setBounds(50,50,30,30);
//窗體初始化
this.setJMenuBar(mbMain);
Dimension scrnSize=tk.getScreenSize();
setSize(600,455);
setLocation((scrnSize.width-this.getWidth())/2,(scrnSize.height-this.getHeight())/2);
setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public void itemStateChanged(ItemEvent ie) {
// TODO Auto-generated method stub
Object oi=ie.getSource();
if(oi==cmbUser)
{
if(cmbUser.getSelectedIndex()!=0)
{
ckbSilent.setEnabled(true);
}
else
ckbSilent.setEnabled(false);
}
}
public void actionPerformed(ActionEvent ae)
{
Object o=ae.getSource();
if(o==btnSend)
{
if(ckbSilent.isSelected())
{
taInfo.append("\n【你】悄悄對"+"【"+cmbUser.getSelectedItem()+"】"+txtContent.getText());
txtContent.requestFocus();
}
else
{
taInfo.append("\n【你】對"+"【"+cmbUser.getSelectedItem()+"】"+txtContent.getText());
txtContent.requestFocus();
}
}
if(o.equals(btnExit))
{
int option=JOptionPane.showConfirmDialog(null, "確定要退出嗎?", "提示", JOptionPane.YES_NO_OPTION);
if(option==0)
System.exit(0);
}
}
public void valueChanged(ListSelectionEvent lse)
{
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method s
new HappyChat();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -