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

📄 jtermfrm.java~1~

📁 用JAVA程序来上BBS?这就是一个这样的程序
💻 JAVA~1~
📖 第 1 页 / 共 2 页
字号:
package JTerm;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
import java.util.ResourceBundle;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class JTermFrm
    extends JFrame {
  static ResourceBundle res = ResourceBundle.getBundle("JTerm.Res");
  JPanel contentPane;
  JTermBoard Board = new JTermBoard();
  JMenuBar jMenuBar1 = new JMenuBar();
  JMenu jMenu1 = new JMenu();
  JMenuItem jMenuItem1 = new JMenuItem();
  JMenuItem jMenuItem2 = new JMenuItem();
  JMenuItem jMenuItem3 = new JMenuItem();
  Socket sockClient;
  String hostname;
  int hostport;
  InputStreamReader reader;
  OutputStreamWriter writer;
  boolean connected = false;
  Thread TermThread;
  JMenu jMenu2 = new JMenu();
  JMenuItem jMenuItem4 = new JMenuItem();
  JMenuItem jMenuItem5 = new JMenuItem();
  JMenuItem jMenuItem6 = new JMenuItem();
  JMenu jMenu3 = new JMenu();
  JMenuItem jMenuItem7 = new JMenuItem();
  JPopupMenu PopMenu = new JPopupMenu();
  JMenuItem CopyMenu = new JMenuItem();
  JMenuItem PasteMenu = new JMenuItem();
  JMenuItem SelectAllMenu = new JMenuItem();
 // XYLayout xYLayout1 = new XYLayout();
  JMenuItem jMenuItem11 = new JMenuItem();
  ImageIcon imageapp= new ImageIcon(res.getString("App_Icon"));
  ImageIcon imagering= new ImageIcon(res.getString("Ring_Icon"));;
  JMenu jMenu4 = new JMenu();
  JMenu jMenu5 = new JMenu();
  JMenuItem jMenuItem8 = new JMenuItem();
  JMenu jMenu6 = new JMenu();
  JMenuItem jMenuItem9 = new JMenuItem();
  JMenuItem jMenuItem10 = new JMenuItem();
  JMenuItem jMenuItem12 = new JMenuItem();
  JMenuItem jMenuItem13 = new JMenuItem();
  JMenuItem jMenuItem14 = new JMenuItem();
  JMenuItem jMenuItem15 = new JMenuItem();
  JMenuItem jMenuItem16 = new JMenuItem();
  //Construct the frame
  public JTermFrm() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  //Component initialization
  private void jbInit() throws Exception {
    contentPane = (JPanel)this.getContentPane();
    this.setCursor(null);
    this.setFont(new java.awt.Font("Monospaced", 0, 13));
    this.setLocale(new java.util.Locale("zh", "CN", ""));
    this.setJMenuBar(jMenuBar1);
    this.setResizable(false);
    this.setSize(new Dimension(647, 458));
    this.setState(Frame.NORMAL);
    this.setTitle(res.getString("Application"));
    this.addKeyListener(new JTermFrm_this_keyAdapter(this));
    Board.setFont(new java.awt.Font(res.getString("Font Name"), 0, 15));
    Board.setForeground(Color.white);
    Board.setAlignmentX( (float) 0.5);
    Board.setMaximumSize(new Dimension(10, 2));
    Board.setMinimumSize(new Dimension(647, 458));
    Board.setNextFocusableComponent(null);
    Board.setSize(getWidth(), this.getHeight());
    Board.setBounds(new Rectangle(0, 0, 647, 458));
    Board.addMouseMotionListener(new JTermFrm_Board_mouseMotionAdapter(this));
    Board.addMouseListener(new JTermFrm_Board_mouseAdapter(this));
    Board.addKeyListener(new JTermFrm_Board_keyAdapter(this));
    Board.setLayout(null);
    contentPane.setLayout(null);

    jMenuBar1.setDoubleBuffered(false);
    jMenuItem3.addActionListener(new JTermFrm_jMenuItem3_actionAdapter(this));
    jMenuItem1.addActionListener(new JTermFrm_jMenuItem1_actionAdapter(this));
    jMenu2.setText(res.getString("KEY"));
    jMenuItem4.setText(res.getString("_Ctrl_C"));
    jMenuItem4.addActionListener(new JTermFrm_jMenuItem4_actionAdapter(this));
    jMenuItem5.setText(res.getString("_Ctrl_P"));
    jMenuItem5.addActionListener(new JTermFrm_jMenuItem5_actionAdapter(this));
    jMenu3.setText(res.getString("KEY1"));
    jMenuItem7.setText(res.getString("_Ctrl_A"));
    jMenuItem7.addActionListener(new JTermFrm_jMenuItem7_actionAdapter(this));
    jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke('\uFFFF'));
    CopyMenu.setFocusPainted(true);
    CopyMenu.setSelected(true);
    CopyMenu.setText(res.getString("KEY2"));
    CopyMenu.addActionListener(new JTermFrm_CopyMenu_actionAdapter(this));
    PasteMenu.setSelected(true);
    PasteMenu.setText(res.getString("KEY3"));
    PasteMenu.addActionListener(new JTermFrm_PasteMenu_actionAdapter(this));
    SelectAllMenu.setSelected(true);
    SelectAllMenu.setText(res.getString("KEY4"));
    jMenu1.setText(res.getString("KEY5"));
    jMenuItem1.setText(res.getString("_Ctrl_A1"));
    jMenuItem2.setText(res.getString("_Ctrl_L"));
    jMenuItem2.addActionListener(new JTermFrm_jMenuItem2_actionAdapter(this));
    jMenuItem3.setText(res.getString("_X_"));
    PopMenu.addMouseMotionListener(new JTermFrm_PopMenu_mouseMotionAdapter(this));
    jMenuItem11.setText(res.getString("CopyRight"));
    jMenuItem11.addActionListener(new JTermFrm_jMenuItem11_actionAdapter(this));
    jMenu5.setText("查看");
    jMenu6.setText("讨论区");
    jMenuItem9.setText("文摘");
    jMenuItem9.addActionListener(new JTermFrm_jMenuItem9_actionAdapter(this));
    jMenuItem10.setText("同主题");
    jMenuItem10.addActionListener(new JTermFrm_jMenuItem10_actionAdapter(this));
    jMenuItem12.setText("被m文章");
    jMenuItem12.addActionListener(new JTermFrm_jMenuItem12_actionAdapter(this));
    jMenuItem13.setText("原作");
    jMenuItem13.addActionListener(new JTermFrm_jMenuItem13_actionAdapter(this));
    jMenuItem14.setText("同作者");
    jMenuItem14.addActionListener(new JTermFrm_jMenuItem14_actionAdapter(this));
    jMenuItem15.setText("标题关键字");
    jMenuItem15.addActionListener(new JTermFrm_jMenuItem15_actionAdapter(this));
    jMenuItem8.setText("进入精华区");
    jMenuItem8.addActionListener(new JTermFrm_jMenuItem8_actionAdapter(this));
    jMenuItem16.setText("查看原文");
    jMenuItem16.addActionListener(new JTermFrm_jMenuItem16_actionAdapter(this));
    jMenuBar1.setRequestFocusEnabled(false);
    jMenuBar1.setOpaque(false);
    jMenuBar1.setRequestFocusEnabled(false);
    jMenuBar1.setVerifyInputWhenFocusTarget(false);
    contentPane.addKeyListener(new JTermFrm_contentPane_keyAdapter(this));
    jMenuBar1.setForeground(Color.black);
    jMenuBar1.setDoubleBuffered(true);
    jMenuBar1.setRequestFocusEnabled(false);
    jMenuBar1.setToolTipText("");
    jMenuBar1.setVerifyInputWhenFocusTarget(false);
    jMenuBar1.add(jMenu1);
    jMenuBar1.add(jMenu2);
    jMenuBar1.add(jMenu5);
    jMenuBar1.add(jMenu3);
    jMenuBar1.add(jMenu4);
    jMenu1.add(jMenuItem1);
    jMenu1.add(jMenuItem2);
    jMenu1.add(jMenuItem3);
    jMenu2.add(jMenuItem4);
    jMenu2.add(jMenuItem5);
    jMenu2.add(jMenuItem7);
    jMenu2.add(jMenuItem6);

    PopMenu.add(CopyMenu);
    PopMenu.add(PasteMenu);
    PopMenu.add(SelectAllMenu);
    contentPane.add(Board, null);
    jMenu3.add(jMenuItem11);
    jMenu5.add(jMenu6);
    jMenu5.add(jMenuItem8);
    jMenu5.add(jMenuItem16);
    jMenu6.add(jMenuItem9);
    jMenu6.add(jMenuItem10);
    jMenu6.add(jMenuItem12);
    jMenu6.add(jMenuItem13);
    jMenu6.add(jMenuItem14);
    jMenu6.add(jMenuItem15);
    hostname = "bbs.tsinghua.edu.cn";
    hostport = 23;

  }

  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

// Quick connect
  void jMenuItem2_actionPerformed(ActionEvent e) {
    try {
      //  String hostname = "bbs.tsinghua.edu.cn";
      //  int hostport = 23;
      InetAddress iAddr = InetAddress.getByName(hostname);
      sockClient = new Socket(iAddr, hostport);
      sockClient.setSendBufferSize(256);
      sockClient.setReceiveBufferSize(2048);
      reader = new InputStreamReader(sockClient.getInputStream());
      writer = new OutputStreamWriter(sockClient.getOutputStream());
      JTermThread term = new JTermThread(reader);
      term.setTerminal(Board);
      TermThread = new Thread(term, "term");
      TermThread.start();
      Board.setActive(true);
    }
    catch (Exception err) {

    }

  }

  void setRingIcon(){
     this.setIconImage(imagering.getImage());
  }
  void Board_keyPressed(KeyEvent e) {
    try {
      switch (e.getKeyCode()) {
        case KeyEvent.VK_RIGHT:
          sockClient.getOutputStream().write('\u001B');
          sockClient.getOutputStream().write('[');
          sockClient.getOutputStream().write('C');
          break;
        case KeyEvent.VK_UP:
          sockClient.getOutputStream().write('\u001B');
          sockClient.getOutputStream().write('[');
          sockClient.getOutputStream().write('A');
          break;
        case KeyEvent.VK_DOWN:
          sockClient.getOutputStream().write('\u001B');
          sockClient.getOutputStream().write('[');
          sockClient.getOutputStream().write('B');
          break;
        case KeyEvent.VK_LEFT:
          sockClient.getOutputStream().write('\u001B');
          sockClient.getOutputStream().write('[');
          sockClient.getOutputStream().write('D');
          break;
        case KeyEvent.VK_PAGE_DOWN:
          sockClient.getOutputStream().write('\u001B');
          sockClient.getOutputStream().write('[');
          sockClient.getOutputStream().write('6');
          sockClient.getOutputStream().write('~');
          break;
        case KeyEvent.VK_PAGE_UP:
          sockClient.getOutputStream().write('\u001B');
          sockClient.getOutputStream().write('[');
          sockClient.getOutputStream().write('5');
          sockClient.getOutputStream().write('~');
          break;
        case KeyEvent.VK_END:
          sockClient.getOutputStream().write('\u001B');
          sockClient.getOutputStream().write('[');
          sockClient.getOutputStream().write('4');
          sockClient.getOutputStream().write('~');
          break;
        case KeyEvent.VK_HOME:
          sockClient.getOutputStream().write('\u001B');
          sockClient.getOutputStream().write('[');
          sockClient.getOutputStream().write('1');
          sockClient.getOutputStream().write('~');

          break;
        case KeyEvent.VK_INSERT:
          sockClient.getOutputStream().write('\u001B');
          sockClient.getOutputStream().write('[');
          sockClient.getOutputStream().write('2');
          sockClient.getOutputStream().write('~');

          break;
        case KeyEvent.VK_DELETE:
          sockClient.getOutputStream().write('\u001B');
          sockClient.getOutputStream().write('[');
          sockClient.getOutputStream().write('3');
          sockClient.getOutputStream().write('~');
          break;
        case KeyEvent.VK_SUBTRACT:
          //Ctrl+Z
          this.setIconImage(imageapp.getImage());
          break;
        case KeyEvent.VK_COPY:
          this.CopyMenu_actionPerformed(null);
          break;
        case KeyEvent.VK_PASTE:
          this.PasteMenu_actionPerformed(null);
          break;
        case KeyEvent.VK_TAB:
          sockClient.getOutputStream().write('\u0009');
        default:
          break;
      }
      sockClient.getOutputStream().flush();
    }
    catch (Exception err) {

    }
  }

  void Board_keyTyped(KeyEvent e) {
    try {
      sockClient.getOutputStream().write(String.valueOf(e.getKeyChar()).
                                         getBytes());
      sockClient.getOutputStream().flush();
    }
    catch (Exception err) {

    }
  }


  void Board_mouseEntered(MouseEvent e) {

  }

  void Board_mouseClicked(MouseEvent e) {
    try {
      if (e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON1) {
        PopMenu.setVisible(false);
        String com = Board.getActionLetter();
        if (com.length() > 0) {
          sockClient.getOutputStream().write(com.getBytes());
        }
      }
      if (e.getClickCount() == 1) {

        if (e.getButton() == MouseEvent.BUTTON3) {
          if ( (e.getX() < 30 || e.getX() > 300)) {
            sockClient.getOutputStream().write('\u001B');
            sockClient.getOutputStream().write('[');
            sockClient.getOutputStream().write('D');
          }
          else {
            PopMenu.setLocation(this.getX() + e.getX(), this.getY() + e.getY());
            PopMenu.setVisible(true);
          }

        }
      }

    }
    catch (Exception err) {

    }
  }

//Exit Window
  void jMenuItem3_actionPerformed(ActionEvent e) {
    if (sockClient != null) {
      try {
        sockClient.close();
        //    TermThread.stop();
      }
      catch (Exception err) {

      }
    }
  Board.Terminate();
  System.exit(javax.swing.WindowConstants.EXIT_ON_CLOSE);
//    this.dispose();
  }

  void jMenuItem1_actionPerformed(ActionEvent e) {
    //this.setEnabled(false);
    HostSelDialog dlg = new HostSelDialog(this, "Host Select", true);
    if (dlg.ExitConn) {
      hostname = dlg.HostAddr.getText();
      hostport = Integer.parseInt(dlg.HostPort.getText());
      if (Board.active){
         JTermFrm frm=new JTermFrm();
         frm.show();
         frm.hostname=hostname;
         frm.hostport=hostport;
         frm.jMenuItem2_actionPerformed(e);
      }else{
        this.jMenuItem2_actionPerformed(e);
      }
    }
    //  JDialog dlg=new JDialog(this,"Host select",true);
    //  dlg.show();
    //this.setEnabled(true);
  }


  void PopMenu_mouseDragged(MouseEvent e) {

  }


  void jMenuItem4_actionPerformed(ActionEvent e) {
    Board.copySelect();
  }

  void Board_mouseReleased(MouseEvent e) {
  //  Board.KeyDown=false;
  }

  void Board_mouseMoved(MouseEvent e) {

  }

  void CopyMenu_actionPerformed(ActionEvent e) {
    this.jMenuItem4_actionPerformed(e);
  }

  void jMenuItem5_actionPerformed(ActionEvent e) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -