📄 jtermfrm.java~1~
字号:
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 + -