📄 chatframe.java
字号:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.LineBorder;
public class ChatFrame extends JFrame {
private JTextField textField;
private JTextArea textArea;
private String account;
private String receiver;
private PrintWriter pw=null;
private BufferedReader br=null;
/**
* @param args
*/
public ChatFrame(String name,String ac,PrintWriter p,BufferedReader b) {
super("与"+name+"交谈中...");
pack();
this.receiver=name;//得到接受者
this.account=ac;//账户名
this.pw=p;
this.br=b;
this.setSize(460, 400);
getContentPane().setLayout(null);
getContentPane().setBackground(new Color(255, 182, 193));
//setTitle("聊天中,与--");
final JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
final JMenu menu = new JMenu();
menu.setText("工具");
menuBar.add(menu);
final JMenuItem newItemMenuItem = new JMenuItem();
newItemMenuItem.setText("保存聊天记录");
menu.add(newItemMenuItem);
newItemMenuItem.addActionListener(new ToStore());
final JScrollPane scrollPane = new JScrollPane();
scrollPane.setBorder(new LineBorder(Color.black, 1, false));
scrollPane.setBounds(23, 10, 377, 208);
getContentPane().add(scrollPane);
textArea = new JTextArea();
textArea.setEditable(false);
scrollPane.setViewportView(textArea);
final JScrollPane scrollPane_1 = new JScrollPane();
scrollPane_1.setBounds(23, 240, 291, 33);
getContentPane().add(scrollPane_1);
textField = new JTextField();
textField.setText(null);
scrollPane_1.setViewportView(textField);
final JButton button = new JButton();
button.addActionListener(new SendMessage());
button.setText("发送");
button.setBounds(324, 240, 76, 28);
getContentPane().add(button);
this.setLocation(300, 300);
this.setResizable(false);
this.setVisible(true);
}
public String getAccount() {
return this.account;
}
public String getReceiver() {
return this.receiver;
}
public PrintWriter getpw() {
return this.pw;
}
public BufferedReader getbr() {
return this.br;
}
class ToStore implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
String storeStr=textArea.getText().replace("\n", "\r\n");
JFileChooser jfc=new JFileChooser();
int result=jfc.showSaveDialog(null);//设置为save类型的框框
//System.out.println(jfc.getSelectedFile());
File file=jfc.getSelectedFile();
try {
BufferedWriter bw=new BufferedWriter(new FileWriter(file));
bw.write(storeStr);
bw.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class SendMessage implements ActionListener {//发送消息,未完成
public void actionPerformed(ActionEvent e) {
String sender=getAccount();//得到发送者,即本账户
String des=getReceiver();//得到接受者
String say=null;
new Thread(new PrintRunnable(getbr(),textArea)).start();
if((say=textField.getText())!= null) {
//String say=textField.getText();
textArea.append(sender+": "+say+"\n");
String tosend=des+":"+sender+":"+say;
//textArea.append(tosend+"\n");
textField.setText(null);
getpw().println(tosend);
//System.out.println(talkStr);
}
}
}
/*public static void main(String[] args) {
new ChatFrame();
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -