📄 chatviewer.java
字号:
\\ChatViewer.java
import java.rmi.*;
import java.rmi.server.*;
import javax.swing.*;
import java.io.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
import javax.swing.event.*;
import java.text.*;
import java.awt.*;
public class ChatViewer extends JComponent implements ChatViewerInterface,Serializable
{
JScrollPane scrollpane;
JTextPane viewer;
public ChatViewer()
{
this.initializedComponent();
}
public ChatViewer(String inimsg)
{
this.initializedComponent();
this.viewer.setText(inimsg);
}
private void initializedComponent()
{
this.viewer = new JTextPane();
this.viewer.setContentType("text/html;charset=gb2312");
this.viewer.setEditable(false);
this.viewer.addHyperlinkListener(new LinkListener());
this.scrollpane = new JScrollPane(this.viewer);
this.setLayout(new BorderLayout());
this.add(this.scrollpane,BorderLayout.CENTER);
this.setVisible(true);
}
public void appendChatContent(String msg)
{
HTMLEditorKit kit = (HTMLEditorKit)(this.viewer.getEditorKit());
Document doc = this.viewer.getDocument();
StringReader reader = new StringReader(msg);
try{
kit.read(reader,doc,doc.getLength());
}catch(Exception e){System.out.println("chat content \""+msg+"\" lost..");}
if(this.viewer.getSelectedText()==null||this.viewer.getSelectedText().trim().length()==0)
{
this.viewer.select(this.viewer.getText().length(),this.viewer.getText().length());
}
}
public void sendToServer()
{
try{
UnicastRemoteObject.exportObject((ChatViewerInterface)this);
}catch(Exception e){
System.out.println("send object to server error: "+e.getMessage());
}
}
class LinkListener implements HyperlinkListener
{
public void hyperlinkUpdate(HyperlinkEvent e)
{
if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
{
if(e instanceof HTMLFrameHyperlinkEvent)
{
HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent)e;
HTMLDocument doc = (HTMLDocument)(viewer.getDocument());
doc.processHTMLFrameHyperlinkEvent(evt);
}
else
{
try {
Runtime.getRuntime().exec("explorer "+e.getURL());
}
catch(Exception ioe) {
//MessageDialog.showMessage(null,INFORMATION,UNSUPPORTED_BROWSER);
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -