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

📄 chatboard.java

📁 基于jxta的局域网P2P文件共享,可以实现局域网中的文件p2p共享,实现文件快速传输及交流
💻 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 + -