📄 remoterframe.java
字号:
package com.topking.rt.ui;
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.Observable;
import java.util.Observer;
import java.util.Timer;
import java.util.TimerTask;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.UIManager;
import com.topking.rt.data.ConnectData;
import com.topking.rt.rmi.interfaces.RMIInterface;
import com.topking.rt.rmi.server.util.RMIServer;
/**
*
* @author lzkj
*/
public class RemoterFrame extends javax.swing.JFrame implements ActionListener,Observer{
/** Creates new form RT */
public RemoterFrame() {
initComponents();
setTitle("Remote Controller V1.0");
panel_image.setImage(defaultImage);
panel_image.updateUI();
panel_image.repaint();
Thread th = new Thread(new RMIServer());
th.setDaemon(true);
th.start();
panel_image.setRmi(rmi);
setFrameLocation();
}
public void setFrameLocation(){
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int Width = (int) dim.getWidth();
int Height = (int) dim.getHeight();
int fWidth = this.getWidth();
int fHeight = this.getHeight();
this.setLocation((Width-fWidth)/2, (Height-fHeight)/2);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jToolBar1 = new javax.swing.JToolBar();
bt_conn = new javax.swing.JButton(new ImageIcon(this.getClass().getClassLoader().getResource("com/topking/rt/ui/images/conn.gif")));
bt_disconn = new javax.swing.JButton(new ImageIcon(this.getClass().getClassLoader().getResource("com/topking/rt/ui/images/disconn.gif")));
bt_shot = new javax.swing.JButton(new ImageIcon(this.getClass().getClassLoader().getResource("com/topking/rt/ui/images/screen.gif")));
jSeparator1 = new javax.swing.JSeparator();
jMenuBar1 = new javax.swing.JMenuBar();
menu_file = new javax.swing.JMenu();
item_conn = new javax.swing.JMenuItem();
item_disconn = new javax.swing.JMenuItem();
item_exit = new javax.swing.JMenuItem();
menu_help = new javax.swing.JMenu();
item_aa = new javax.swing.JMenuItem();
item_at = new javax.swing.JMenuItem();
int dy = jMenuBar1.getHeight()+jToolBar1.getHeight()+jSeparator1.getHeight();
panel_image = new MyPanel(null);
scrollPane = new JScrollPane(panel_image,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jToolBar1.setRollover(true);
bt_conn.setToolTipText("Connect");
bt_conn.setFocusable(false);
bt_conn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
bt_conn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
jToolBar1.add(bt_conn);
bt_disconn.setToolTipText("DisConnect");
bt_disconn.setFocusable(false);
bt_disconn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
bt_disconn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
jToolBar1.add(bt_disconn);
bt_shot.setToolTipText("ScreenShot");
bt_shot.setFocusable(false);
bt_shot.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
bt_shot.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
jToolBar1.add(bt_shot);
item_conn.addActionListener(this);
item_disconn.addActionListener(this);
bt_conn.addActionListener(this);
bt_disconn.addActionListener(this);
bt_shot.addActionListener(this);
item_aa.addActionListener(this);
item_at.addActionListener(this);
javax.swing.GroupLayout panel_imageLayout = new javax.swing.GroupLayout(panel_image);
panel_image.setLayout(panel_imageLayout);
panel_imageLayout.setHorizontalGroup(
panel_imageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 816, Short.MAX_VALUE)
);
panel_imageLayout.setVerticalGroup(
panel_imageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 472, Short.MAX_VALUE)
);
menu_file.setText("File");
item_conn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.ALT_MASK));
item_conn.setText("Connect");
menu_file.add(item_conn);
item_disconn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_D, java.awt.event.InputEvent.ALT_MASK));
item_disconn.setText("DisConnect");
menu_file.add(item_disconn);
item_exit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.CTRL_MASK));
item_exit.setText("Exit");
menu_file.add(item_exit);
jMenuBar1.add(menu_file);
menu_help.setText("Help");
item_aa.setText("About Author");
menu_help.add(item_aa);
item_at.setText("About This");
menu_help.add(item_at);
jMenuBar1.add(menu_help);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 816, Short.MAX_VALUE)
.addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 816, Short.MAX_VALUE)
.addComponent(scrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(scrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
// this.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
// packContainer();
pack();
}// </editor-fold>
public void packContainer(){
Container c = this.getContentPane();
c.setLayout(new BorderLayout());
JPanel pane1 = new JPanel();
pane1.setLayout(new BorderLayout());
pane1.add(jMenuBar1,BorderLayout.NORTH);
pane1.add(jSeparator1,BorderLayout.CENTER);
pane1.add(jToolBar1,BorderLayout.SOUTH);
JScrollPane scrollPane = new JScrollPane(panel_image,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
c.add(pane1,BorderLayout.NORTH);
c.add(scrollPane,BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==item_conn||e.getSource()==bt_conn){
getConnection();
}
if(e.getSource()==item_disconn||e.getSource()==bt_disconn){
disConnection();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -