?? chatboard.java
字號:
package connex.plugins.chat;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.text.html.HTMLEditorKit;
import java.io.File;
import java.io.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
import java.util.GregorianCalendar;
import connex.app.utils.ToolBar;
import org.jdesktop.swingx.JXPanel;
import connex.core.net.WorkspaceConnection;
public class ChatBoard
extends JXPanel {
private WorkspaceConnection session;
JPanel jPanel1 = new JPanel();
JPanel jPanel4 = new JPanel();
JPanel jPanel6 = new JPanel();
JPanel jPanel8 = new JPanel();
JPanel jPanel12 = new JPanel();
JPanel jPanel13 = new JPanel();
JPanel jPanel3 = new JPanel();
JXPanel jPanel2 = new JXPanel();
JXPanel jPanel14 = new JXPanel();
JXPanel jPanel9 = new JXPanel();
JFileChooser fc;
JButton sendBtn = new JButton();
ChatEditor te;
JScrollPane jScrollPane2 = new JScrollPane();
JEditorPane board = new JEditorPane();
ImageIcon save = new ImageIcon(ChatBoard.class.getResource("save_small.png"));
boolean freezed = false;
//DropShadowBorder border5 = new DropShadowBorder(Color.black, 10, 7, .7f, 12, false, true, true, true);
BorderLayout borderLayout1 = new BorderLayout();
BorderLayout borderLayout2 = new BorderLayout();
BorderLayout borderLayout3 = new BorderLayout();
ToolBar jbar5 = new ToolBar();
JPanel jPanel7 = new JPanel();
ToolBar jPanel11 = new ToolBar();
JButton jButton2 = new JButton(save);
// BorderLayout borderLayout4 = new BorderLayout();
BorderLayout borderLayout5 = new BorderLayout();
BorderLayout borderLayout6 = new BorderLayout();
BorderLayout borderLayout7 = new BorderLayout();
public ChatBoard() {
try {
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
public void setSession(WorkspaceConnection session) {
this.session = session;
}
public WorkspaceConnection getSession() {
return this.session;
}
public JEditorPane getBoard() {
return board;
}
private void jbInit() throws Exception {
this.setSize(526, 432);
this.setLayout(borderLayout5);
jPanel1.setBorder(null);
jPanel1.setBounds(new Rectangle(8, 12, 345, 293));
jPanel1.setLayout(borderLayout1);
jPanel3.setBackground(new Color(235, 235, 235));
jPanel3.setBorder(null);
jPanel3.setPreferredSize(new Dimension(150, 1));
jPanel3.setBounds(new Rectangle(356, 7, 157, 303));
jPanel3.setLayout(null);
board.setEditorKit(new HTMLEditorKit());
board.setEditable(false);
sendBtn.addActionListener(new ChatSessionGUI_sendBtn_actionAdapter(this));
jPanel2.setLayout(borderLayout2);
//borderLayout2.setVgap(10);
sendBtn.setPreferredSize(new Dimension(102, 78));
jPanel4.setLayout(borderLayout3);
jPanel4.setPreferredSize(new Dimension(102, 68));
borderLayout3.setHgap(10);
borderLayout3.setVgap(10);
jbar5.setBackground(UIManager.getColor("ColorChooser.background"));
jbar5.setPreferredSize(new Dimension(30, 39));
jbar5.setFloatable(false);
jPanel2.setBackground(Color.white);
jPanel2.setPreferredSize(new Dimension(102, 120));
//jPanel7.setBackground(new Color(236, 233, 216));
jPanel6.setBackground(Color.white);
jPanel8.setBackground(Color.white);
jPanel8.setLayout(borderLayout7);
jPanel9.setLayout(borderLayout6);
jScrollPane2.setPreferredSize(new Dimension(200, 200));
jPanel12.setBackground(Color.white);
jPanel13.setBackground(Color.white);
jPanel11.setFloatable(false);
jButton2.setOpaque(false);
jButton2.setFocusable(false);
jButton2.addActionListener(new ChatSessionGUI_jButton2_actionAdapter(this));
jPanel14.setBackground(new Color(235, 235, 235));
jScrollPane2.getViewport().add(board);
sendBtn.setText("Send");
jPanel9.add(jPanel1, java.awt.BorderLayout.CENTER);
jPanel1.add(jScrollPane2, java.awt.BorderLayout.CENTER);
jPanel9.add(jPanel11, java.awt.BorderLayout.NORTH);
jPanel11.add(jButton2);
//jPanel8.add(jPanel12, java.awt.BorderLayout.NORTH);
jPanel8.add(sendBtn, java.awt.BorderLayout.CENTER);
// jPanel8.add(jPanel13, java.awt.BorderLayout.EAST);
jPanel8.add(jPanel6, java.awt.BorderLayout.EAST);
jPanel4.setBackground(Color.white);
jPanel4.add(jbar5, java.awt.BorderLayout.NORTH);
jPanel4.add(jPanel8, java.awt.BorderLayout.CENTER);
jPanel2.add(jPanel4, java.awt.BorderLayout.EAST);
jPanel2.add(jPanel7, java.awt.BorderLayout.SOUTH);
this.add(jPanel9, java.awt.BorderLayout.CENTER);
this.add(jPanel2, java.awt.BorderLayout.SOUTH);
this.add(jPanel14, java.awt.BorderLayout.WEST);
jPanel9.setAlpha( (float) 0.5);
jPanel2.setAlpha( (float) 0.5);
jPanel14.setAlpha( (float) 0.5);
te = new ChatEditor();
jPanel2.add(te, java.awt.BorderLayout.CENTER);
te.getEditor().addKeyListener(new ChatSessionGUI_editor_keyAdapter(this));
jPanel9.setAlpha( (float) 1.0);
jPanel2.setAlpha( (float) 1.0);
jPanel14.setAlpha( (float) 1.0);
this.validate();
}
public void sendBtn_actionPerformed(ActionEvent e) {
ChatService.getInstance().sendMessage(te.getMessage());
showMsg("Me", te.getMessage());
te.clear();
}
public void showMsg(String user, String data) {
if ( -1 != data.indexOf("@sdi@")) {
data = data.replaceAll("@sdi@", System.getProperty("smiliesDir"));
}
String data2 =
"<font size=" + 4 + " color='#ff0033' face='Comic Sans MS'>" +
user + " </FONT>" +
"<font size=" + 2 + " color='#999999' face='Comic Sans MS'>" + "@" +
GregorianCalendar.getInstance().getTime().toString() + " : </font> "
+ data;
try {
( (HTMLEditorKit) getBoard().getEditorKit()).read(new
java.io.StringReader(
data2),
getBoard().getDocument(),
getBoard().getDocument().getLength());
getBoard().setCaretPosition(getBoard().
getDocument().getLength());
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
public static void main(String art[]) {
JFrame f= new JFrame();
f.add(new ChatBoard());
f.setVisible(true);
}
public void editor_keyTyped(KeyEvent e) {
if (e.getKeyChar() == '\n') {
sendBtn_actionPerformed(null);
}
}
public void jButton2_actionPerformed(ActionEvent e) {
//File file = new File();
try {
FileOutputStream out = new FileOutputStream( "chat.html");
out.write(getBoard().getText().getBytes());
out.close();
}
catch (Exception ex) {
System.out.print("Session not saved: " + ex.getMessage());
}
}
}
class ChatSessionGUI_jButton2_actionAdapter
implements ActionListener {
private ChatBoard adaptee;
ChatSessionGUI_jButton2_actionAdapter(ChatBoard adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}
class ChatSessionGUI_sendBtn_actionAdapter
implements ActionListener {
private ChatBoard adaptee;
ChatSessionGUI_sendBtn_actionAdapter(ChatBoard adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.sendBtn_actionPerformed(e);
}
}
class ChatSessionGUI_editor_keyAdapter
extends KeyAdapter {
private ChatBoard adaptee;
ChatSessionGUI_editor_keyAdapter(ChatBoard adaptee) {
this.adaptee = adaptee;
}
public void keyTyped(KeyEvent e) {
adaptee.editor_keyTyped(e);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -