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

📄 remoterframe.java

📁 rmi C/S 客 户 端 与 服 务 端 连 接
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    	if(e.getSource()==bt_shot){
    		screenshot();
    	}
    	
    	if(e.getSource()==item_aa){
    		new AboutAuthorFrame().setVisible(true);
    	}
    	
    	if(e.getSource()==item_at){
    		new AboutThisFrame().setVisible(true);
    	}
    }
    
    public void getConnection(){
    	ConnectFrame cf = new ConnectFrame();
    	cf.addObserver(this);    	
    }
    
    public void disConnection(){
    	rmi = null;
    	isConnected = false;
    	bt_conn.setEnabled(true);
		item_conn.setEnabled(true);
		panel_image.setImage(defaultImage);
		panel_image.repaint();
		panel_image.setRmi(rmi);
		timer.cancel();
    }
    
    public void screenshot(){    	
		/*try {
			byte[] bt = rmi.getImageData().getData();
			if(bt!=null){
				InputStream in = new ByteArrayInputStream(bt);
	    		BufferedImage image = ImageIO.read(in);
	    		new ScreenShotFrame(image).setVisible(true);
	    	}
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  catch(IOException e){
			e.printStackTrace();
		}*/
    	
		Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();		 
		try {
			Robot robot = new Robot();
			BufferedImage image = robot.createScreenCapture(new Rectangle(0,0,(int)dim.getWidth(),(int)dim.getHeight()));
			new ScreenShotFrame(image).setVisible(true);
		} catch (AWTException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
    }

    @Override
	public void update(Observable o, Object arg) {
		// TODO Auto-generated method stub
		if(o instanceof ConnectFrame){
			System.err.println("Recived ConnectFrame's connArg......");
			if(arg instanceof ConnectData){
				this.connArg = (ConnectData) arg;
//				System.out.println("arg : "+arg);
//				System.out.println(connArg.getHost()+":"+connArg.getPort());
				if(this.connArg!=null){
		    		try {
						rmi = (RMIInterface) Naming.lookup("//"+connArg.getHost()+":"+connArg.getPort()+"/REMOTECONTROLLER");
						isConnected = true;
						bt_conn.setEnabled(false);
						item_conn.setEnabled(false);
						panel_image.setRmi(rmi);
						getinitImage();
						controll();
					} catch (MalformedURLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						JOptionPane.showMessageDialog(this, "Exception:"+e.getMessage(),"Connect Fail",JOptionPane.ERROR_MESSAGE);
					} catch (RemoteException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						JOptionPane.showMessageDialog(this, "Exception:"+e.getMessage(),"Connect Fail",JOptionPane.ERROR_MESSAGE);
					} catch (NotBoundException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						JOptionPane.showMessageDialog(this, "Exception:"+e.getMessage(),"Connect Fail",JOptionPane.ERROR_MESSAGE);
					}	
				}			
	    	}    		
		}
	}
	    
    public void getinitImage(){
    	try {
			byte[] bt = rmi.getinitImageData().getData();
			oldImageByte = bt;
			BufferedImage image = null;
//			System.out.println("bt : "+bt.length);
			if(bt!=null){			
				try {
					InputStream in = new ByteArrayInputStream(bt);
					image = ImageIO.read(in);
					panel_image.setImage(image);
					in.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			panel_image.repaint();
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    
    public void controll(){
    	if(isConnected){
    		timer = new Timer();
    		timer.schedule(new TimerTask(){

				@Override
				public void run() {
					// TODO Auto-generated method stub
					try {
						/*List changedData = rmi.getChangedImageData();
						System.err.println("tranaction length :"+changedData.size());
						byte[] bt = ByteDataUtil.getNewImageByte(oldImageByte,changedData);*/
						byte[] bt = rmi.getinitImageData().getData();
						BufferedImage image = null;
//						System.out.println("bt : "+bt.length);
						if(bt!=null){			
							try {
								InputStream in = new ByteArrayInputStream(bt);
								image = ImageIO.read(in);
								panel_image.setImage(image);
								oldImageByte = bt;
								in.close();
							} catch (IOException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}
						}
						panel_image.repaint();
					} catch (RemoteException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
    			
    		}, 10, 10);
    	}
    }
    
    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
    	/*try {			
        	javax.swing.UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
			com.birosoft.liquid.LiquidLookAndFeel.setLiquidDecorations(true);
			java.awt.EventQueue.invokeLater(new Runnable() {
	            public void run() {
	            	 new RemoterFrame().setVisible(true);
	            }
	        });     			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnsupportedLookAndFeelException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}*/
    	try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            java.awt.EventQueue.invokeLater(new Runnable() {
	            public void run() {
	            	 new RemoterFrame().setVisible(true);
	            }
	        });  
        }
        catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    // Variables declaration - do not modify
    private javax.swing.JButton bt_conn;
    private javax.swing.JButton bt_disconn;
    private javax.swing.JButton bt_shot;
    private javax.swing.JMenuItem item_aa;
    private javax.swing.JMenuItem item_at;
    private javax.swing.JMenuItem item_conn;
    private javax.swing.JMenuItem item_disconn;
    private javax.swing.JMenuItem item_exit;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JMenu menu_file;
    private javax.swing.JMenu menu_help;
    private MyPanel panel_image; 
    private JScrollPane scrollPane = null;
    private boolean isConnected = false;
    private RMIInterface rmi = null;
    private ConnectData connArg = null;
    private Timer timer = null;
    private Image defaultImage = this.getToolkit().createImage(this.getClass().getClassLoader().getResource("com/topking/rt/ui/images/bg5.jpg"));
    
    private byte[] oldImageByte = null;
    // End of variables declaration
	

}

⌨️ 快捷键说明

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