⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 singleframe.java

📁 我写的聊天程序 用JAVA实现
💻 JAVA
字号:
package NewQQ;import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;import javax.swing.*;class SingleFrame {	String name;	String me;	JFrame jframe;	TextArea jtextarea;	JTextField jtextfield;	JButton jbutton;	JButton jbuttonrecv;	JButton jbuttonrefuse;	JPanel jpanel;	ObjectOutputStream oos;	HashMap user;	String file;	String savefile;	JFileChooser chooser = new JFileChooser();	public SingleFrame(String name,ObjectOutputStream oos,HashMap user,String me){		this.name = name;		this.oos = oos;		this.user = user;		this.me = me;		}	public void init(){		jframe = new JFrame("与 "+name+" 聊天中");		jframe.setSize(400,300);		jpanel = new JPanel();		jtextarea = new TextArea();		jtextfield = new JTextField(10);		jpanel.add(jtextfield);		jtextarea.setEditable(false);		jtextarea.setFocusable(false);		jbutton = new JButton("传文件");		jbuttonrecv = new JButton("接文件");		jbuttonrefuse =  new JButton("取消接收");		jbuttonrecv.setEnabled(false);		jbuttonrefuse.setEnabled(false);		jpanel.add(jbutton);		jpanel.add(jbuttonrecv);		jpanel.add(jbuttonrefuse);		class BuLi implements ActionListener{			public void actionPerformed(ActionEvent arg0){				try {					if(chooser.showOpenDialog(new JTextField())==JFileChooser.APPROVE_OPTION){						file = chooser.getSelectedFile().getAbsolutePath();						String filename = file;						QQMessage sendself = new QQMessage();						sendself.setType(12);						sendself.setSender(me);						sendself.setRecver(me);						sendself.setFilename(file);						oos.writeObject(sendself);						oos.flush();						jtextarea.append("即将发送文件:"+filename+"\n");						jtextarea.append("等待对方接收或者关闭窗口取消"+"\n");						StringTokenizer st = new StringTokenizer(filename,"/");						while(st.hasMoreTokens()){filename = st.nextToken();}						QQMessage filemsg = new QQMessage();						filemsg.setType(5);						filemsg.setSender(me);						filemsg.setRecver(name);						filemsg.setFilename(filename);						oos.writeObject(filemsg);						oos.flush();					}				} catch (Exception e) {}			}		}		class QQButtonListener implements ActionListener{			public void actionPerformed(ActionEvent arg0){				try {					JButton jb = (JButton)arg0.getSource();					QQMessage filemessage = new QQMessage();					filemessage.setSender(me);					filemessage.setRecver(name);					if(jb.getText().equals("接文件")){						if(chooser.showSaveDialog(new JTextField())==JFileChooser.APPROVE_OPTION){							savefile = chooser.getSelectedFile().getAbsolutePath();							filemessage.setType(10);						}						else							filemessage.setType(11);					}					else{						filemessage.setType(11);					}					oos.writeObject(filemessage);					oos.flush();					QQMessage sendself = new QQMessage();					sendself.setType(13);					sendself.setSender(me);					sendself.setRecver(me);					sendself.setFilename(savefile);					oos.writeObject(sendself);					oos.flush();					jbuttonrefuse.setEnabled(false);					jbuttonrecv.setEnabled(false);				} catch (IOException e) {}			}		}		QQButtonListener bbl = new QQButtonListener();		jbuttonrecv.addActionListener(bbl);		jbuttonrefuse.addActionListener(bbl);		jbutton.addActionListener(new BuLi());		class MyAL implements ActionListener{			public void actionPerformed(ActionEvent arg0) {				try {					String com = jtextfield.getText();					jtextarea.append("我对");					jtextarea.append(name);					jtextarea.append("说:\n");					jtextarea.append(com);					jtextarea.append("\n\n");					QQMessage mess = new QQMessage();					mess.setType(4);					mess.setSender(me);					mess.setRecver(name);					mess.setMessage(com);					oos.writeObject(mess);					oos.flush();					jtextfield.setText("");				} catch (IOException e) {}			}		}		jtextfield.addActionListener(new MyAL());		jframe.add(jpanel,BorderLayout.SOUTH);		jframe.add(jtextarea);		class TClientWindowListener extends WindowAdapter{			public void windowClosing(WindowEvent e){					user.remove(name);					file = null;			}		}		jframe.addWindowListener(new TClientWindowListener());		jframe.setVisible(true);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -