zoukankan      html  css  js  c++  java
  • java监听事件

    2014年2月23日 09:51:54

    成功添加了打开官网的事件,

    回头研究下,那个打开url的类

    java的System.getProperty()方法可以获取的值

    ###################################

    2014年2月23日 22:16:25 今天搬家,下午很忙。回来整理下。今天的实现了打开url和打开文件的事情效果

    /*瑞德医疗官网,工作日志*/
    	private JPanel getInfoJP() {
    		if(infoJP==null){
    			infoJP = new JPanel();
    			//infoJP.setSize(500, 200);
    			infoJP.setLayout(new FlowLayout());
    			JButton ryzurNet =new JButton("瑞德医疗官网");
    			infoJP.add(ryzurNet);
    			ryzurNet.setMnemonic(KeyEvent.VK_I);
    			
    			ryzurNet.addActionListener(new RyzurInternet());
    			
    			JButton ryzurLog = new JButton("查看本地日志");
    			infoJP.add(ryzurLog);
    			
    			ryzurLog.setMnemonic(KeyEvent.VK_I);
    			
    			ryzurLog.addActionListener(new ReadLog());
    			
    			
    		}
    		return infoJP;
    	} 
    

      

    所需的事件类 如下

    打开指定url的页面

    package cn.wuwenfu.swing;
    
    /*
     * open url  www.ryzur.com.cn
     * 2014年2月23日 22:01:15
     * 
     * */
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    public class RyzurInternet implements ActionListener {
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		 String url = "www.ryzur.com.cn";         
    		    BareBonesBrowserLaunch.openURL(url); 
    		
    	}
    	
    	
    
    }
    

      

    下面这个引用网络上别人写的类,只测试了window,可以正常打开。

    package cn.wuwenfu.swing;
    
    /////////////////////////////////////////////////////////  
    //Bare Bones Browser Launch                            //  
    //Version 1.5 (December 10, 2005)                    //  
                                                    
    //支持: Mac OS X, GNU/Linux, Unix, Windows XP//  
                                                        //  
    /////////////////////////////////////////////////////////  
    
    
     
     
    import java.lang.reflect.Method;  
     
    
    public class BareBonesBrowserLaunch {  
    
      public static void openURL(String url) {  
          try {  
              browse(url);  
          } catch (Exception e) {  
          }  
      } 
      
      
    
      private static void browse(String url) throws Exception {  
          //获取操作系统的名字  
          String osName = System.getProperty("os.name", "");
          
         // System.out.println(osName);
          if (osName.startsWith("Mac OS")) {  
              //苹果的打开方式  
              Class fileMgr = Class.forName("com.apple.eio.FileManager");  
              Method openURL = fileMgr.getDeclaredMethod("openURL", new Class[] { String.class });  
              openURL.invoke(null, new Object[] { url });  
          } else if (osName.startsWith("Windows")) {  
             //windows的打开方式。  
              Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);  
          } else {  
              // Unix or Linux的打开方式  
              String[] browsers = { "firefox", "opera", "konqueror", "epiphany", "mozilla", "netscape" };  
              String browser = null;  
              for (int count = 0; count < browsers.length && browser == null; count++)  
                  //执行代码,在brower有值后跳出,  
                  //这里是如果进程创建成功了,==0是表示正常结束。  
                  if (Runtime.getRuntime().exec(new String[] { "which", browsers[count] }).waitFor() == 0)  
                      browser = browsers[count];  
              if (browser == null)  
                  throw new Exception("Could not find web browser");  
              else  
                  //这个值在上面已经成功的得到了一个进程。  
                  Runtime.getRuntime().exec(new String[] { browser, url });  
          }  
      }  
    }  
    

      

    另一个事件 打开文件

    package cn.wuwenfu.swing;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
    
    /*
     * click button ,open log file
     * 2014年2月23日 22:03:49
     * */
    public class ReadLog implements ActionListener{
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		Runtime rt = Runtime.getRuntime();
    
    		try {
    			Process p = rt.exec("cmd /c start c:/log.txt");
    		} catch (IOException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		} 
    		
    		
    	}
    
    }
    

      

    到这里,界面上2个按钮的功能完毕。还有2个按钮,需要负责工程的启动和关闭。明天有空再弄

    今天的收获:java的按钮添加事件,很简单,没有之前的复杂,自己感到自信了很多。

    另外一个收获:今天看了电子书,<<php实战>>,其中提到一个细节,可以使用while循环,确保程序不会退出。运行错误,则立刻重启。 避免额外写程序 监听和重启当前程序。

    github 在尝试使用,英文不会的好多,目前可以阅读源代码了,尝试看了CI的源码,有难度

    QQ:540045865 热爱生活,热爱编程。
  • 相关阅读:
    SP笔记:交叉实现七行并成一行
    HTML tag 学习
    操作哈希表
    Efficient bipedal robots based on passivedynamic walkers
    Pushing People Around
    ZEROMOMENT PONTTHIRTY FIVE YEARS OF ITS LIFE

    Active Learning for RealTime Motion Controllers
    Accelerometerbased User Interfaces for the Control of a Physically Simulated Character
    Dynamic Response for Motion Capture Animation
  • 原文地址:https://www.cnblogs.com/jsRunner/p/3561651.html
Copyright © 2011-2022 走看看