📄 diagframe.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.Date;
//本窗口大小应该不可调
class DiagFrame extends JFrame{
ClientFrame clientframe;
String RegName;
String UserName;
boolean Online;
User myself,myFriend;
/****************************************************以下组件****************************************************/
Container contentPane; //顶层容器
JScrollPane revScroll; //显示接收到消息的滚动条
JTextArea revText; //显示接收到消息的文本框
JScrollPane revScroll1; //test
JTextField revText1; //test
JScrollPane SendScroll; //显示发送的消息的滚动条
JTextArea sendText; //显示发送的消息的文本框
JScrollPane DestanceScroll; //显示对方用户资料的滚动条
JTextArea DestanceText; //显示对方用户资料的文本框
JScrollPane CurrentScroll; //显示自己用户资料的滚动条
JTextArea CurrentText; //显示自己用户资料的文本框
JButton OKBtn; //发送按钮
JButton cancelBtn; //取消按钮
/****************************************************以上组件****************************************************/
/*
public DiagFrame(ClientFrame clientframe,String RegName,String UserName,boolean Online){
this(UserName);
this.clientframe=clientframe;
this.RegName=RegName;
this.UserName=UserName;
this.Online=Online;
}
*/
public DiagFrame(ClientFrame clientframe,User myself,User myFriend,boolean Online){
this(myself,myFriend);
this.clientframe=clientframe;
this.myself=myself;
this.myFriend=myFriend;
this.RegName=myFriend.getRegName();
this.UserName=myFriend.getUserName();
this.Online=Online;
}
public DiagFrame(User myself,User myFriend){
setTitle("与"+myFriend.getUserName()+"对话中");
contentPane=this.getContentPane(); //获取顶层容器
contentPane.setLayout(new GridBagLayout());
revText=new JTextArea();
revText.setLineWrap(true);
//revText.setOpaque(false);
revScroll=new JScrollPane(revText);
//revText.setEnabled(false);
revText.setEditable(false);
revText.setBorder(BorderFactory.createTitledBorder("Message of received:"));
//revScroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
//revScroll.setWheelScrollingEnabled(true);//自动响应鼠标滚轮
revText1=new JTextField(15);
revScroll1=new JScrollPane(revText1);
//revText1.setEditable(false);
//revText1.setBorder(BorderFactory.createTitledBorder("Message of received:"));
sendText=new JTextArea();
sendText.setLineWrap(true);
sendText.setBorder(BorderFactory.createTitledBorder("Message of sended:"));
SendScroll=new JScrollPane(sendText);
SendScroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
//SendScroll.setWheelScrollingEnabled(true);//自动响应鼠标滚轮
DestanceText=new JTextArea();
DestanceText.setEditable(false);
DestanceScroll=new JScrollPane(DestanceText);
DestanceText.setBorder(BorderFactory.createTitledBorder("Info of my friend:"));
DestanceScroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
//DestanceScroll.setWheelScrollingEnabled(true);//自动响应鼠标滚轮
String sex=myFriend.getSex()?"男":"女";
DestanceText.append("姓名: "+myFriend.getUserName()+"\n"+"性别:"+sex+"\n"+"职位:"+myFriend.getJob()+"\n"+"邮箱:"+myFriend.getEMail()+"\n"+"电话:"+myFriend.getTel()+"\n"+"IP:"+myFriend.getIpAddr()+"\n");
CurrentText=new JTextArea();
CurrentText.setEditable(false);
CurrentScroll=new JScrollPane(CurrentText);
CurrentText.setBorder(BorderFactory.createTitledBorder("Info of myself:"));
CurrentScroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
//CurrentScroll.setWheelScrollingEnabled(true);//自动响应鼠标滚轮
sex=myself.getSex()?"男":"女";
CurrentText.append("姓名: "+myself.getUserName()+"\n"+"性别:"+sex+"\n"+"职位:"+myself.getJob()+"\n"+"邮箱:"+myself.getEMail()+"\n"+"电话:"+myself.getTel()+"\n"+"IP:"+myself.getIpAddr()+"\n");
OKBtn=new JButton("Send");
cancelBtn=new JButton("Cancle");
OKBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Message msg;
msg=new Message("",RegName,sendText.getText().trim(),System.currentTimeMillis());
RealTimeMsgReceiver(msg);
//revText.append((new Date(System.currentTimeMillis())).toLocaleString());
//revText.append("\n");
//revText.append(sendText.getText().trim());
//revText.append("\n");
sendText.setText("");
System.out.println("准备调用clientframe.send(msg,Online)");
clientframe.send(msg,Online);
}
});
cancelBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
sendText.setText("");
}//public void actionPerformed(ActionEvent e)
});
LayoutUtil.add(contentPane,SendScroll,GridBagConstraints.BOTH,GridBagConstraints.CENTER,1,1,0,0,4,4);
LayoutUtil.add(contentPane,revScroll,GridBagConstraints.BOTH,GridBagConstraints.CENTER,1,1,0,4,4,4);
LayoutUtil.add(contentPane,DestanceScroll,GridBagConstraints.BOTH,GridBagConstraints.CENTER,1,1,4,0,3,3);
LayoutUtil.add(contentPane,CurrentScroll,GridBagConstraints.BOTH,GridBagConstraints.CENTER,1,1,4,4,3,3);
LayoutUtil.add(contentPane,OKBtn,GridBagConstraints.NONE,GridBagConstraints.CENTER,1,1,2,8,1,1,new Insets(10,0,0,0));
LayoutUtil.add(contentPane,cancelBtn,GridBagConstraints.NONE,GridBagConstraints.CENTER,1,1,4,8,1,1,new Insets(10,0,0,0));
//LayoutUtil.add(contentPane,revScroll1,GridBagConstraints.NONE,GridBagConstraints.CENTER,1,1,5,8,2,1,new Insets(10,0,0,0));
//窗体居中设置
//Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
//Dimension frameSize = this.getSize();
//if (frameSize.height > screenSize.height) {
// frameSize.height = screenSize.height;
//}
//if (frameSize.width > screenSize.width) {
// frameSize.width = screenSize.width;
//}
//this.setLocation((screenSize.width - frameSize.width) / 2,
// (screenSize.height - frameSize.height) / 2);
setSize(400,400);
setResizable(false);
//setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
DiagFrame.this.setVisible(false);
}//public void windowClosing(WindowEvent e)
public void windowActivated(WindowEvent e){
if(Online){
OKBtn.setText("Send");
}else{
OKBtn.setText("message");
}
//revText.setFocusable(true);
//revText.show(true);
//revText.show();
//revText.setVisible(true);
System.out.println("in windowActivated");
System.out.println("revText.isShowing()="+revText.isShowing());
System.out.println("revText.isDisplayable()="+revText.isDisplayable());
System.out.println("revScroll.isShowing()="+revScroll.isShowing());
System.out.println("revScroll.isDisplayable()="+revScroll.isDisplayable());
}//public void windowActivated(WindowEvent e)
public void windowDeactivated(WindowEvent e){
Online=clientframe.isOnline(RegName);
}//public void windowDeactivated(WindowEvent e)
});//addWindowListener(new WindowAdapter(){
}//DiagFrame()
public void RealTimeMsgReceiver(Message msg){
System.out.println("in DiagFrame RealTimeMsgReceiver()正在交付即时信息");
revText.append(msg.getstrLocaleDate()+" "+msg.getfromName());
revText.append("\n");
revText.append(msg.getMsg());
revText.append("\n");
//revText1.setText(/*msg.getstrDate()+" "+*/msg.getfromName()/*+" "+msg.getMsg()*/);
//revText1.append("\n");
//revText1.append();
//revText1.append("\n");
System.out.println("in DiagFrame RealTimeMsgReceiver()\n即时信息已经成功添加到revText");
System.out.println("revText.isShowing()="+revText.isShowing());
System.out.println("revText.isDisplayable()="+revText.isDisplayable());
//System.out.println("length of revText=\n"+revText.getText().length());
System.out.println("Strings in revText=\n"+revText.getText());
//System.out.println(revText.getCaretPosition());
}//public void RealTimeMsgReceiver(Message msg)
public static void main(String args[]){
//new DiagFrame("服务器").setVisible(true);
}//main()
}//class DiagFrame extends JFrame
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -