java swing执行adb命令显示到文本框

我们经常使用Runtime.getRuntime().exec(adb shell );在java执行的时候,不像我们cmd执行会有结果显示,我们就不会知道执行结果如何,如push不知道有没有push玩;

首先我们Swing画有textArea文本框(带滚动条的,否则内容太多显示不完,先scrollPane,在选择JTextArea放在上面,具体百度swing方法使用)。

效果图(adb 输入的结果,显示到这个框里),如下:

 

 

具体实现(格式很乱,复制到eclipse中排列下):

  //把line的内容输入到文本框显示
  private void showContent(String msg) {
                textArea.setText(msg);
    }             


           //按钮实现:
           btnNewButton.addActionListener(new ActionListener() {
		  private Component p;
		public void actionPerformed(ActionEvent e) {

                      //从这里开始
                      Process process1 = null;
					  StringBuilder result = new StringBuilder();
					  BufferedReader bufrIn = null;
				      BufferedReader bufrError = null;
				      String line = null;
						try {
								
							System.out.println("path1a: "+path1);//path是选择脚本路径
							if(path1.equals("")){//这个判断路径不能为空,这能equals写法,其他写法不行,如:path1==null 或 path1==“”,这样不对的。
							System.out.println("path: "+path);

//				    process1.waitFor();// 方法阻塞, 等待命令执行完成(成功会返回0)
					process1 =Runtime.getRuntime().exec("adb pull       sdcard/pictures/screenshots "+path);
							 // 获取命令执行结果, 有两个结果: 正常的输出 和 错误的输出(PS: 子进程的输出就是主进程的输入)
				            bufrIn = new BufferedReader(new InputStreamReader(process1.getInputStream(), "UTF-8"));
				            bufrError = new BufferedReader(new InputStreamReader(process1.getErrorStream(), "UTF-8"));
				            
				            // 读取输出
				            
				            while ((line = bufrIn.readLine()) != null) {
				                result.append(line).append('\n');
				                System.out.println("line1: "+line);//输出内容
				            }
				            
				            StringBuffer outputBuf = new StringBuffer();//固定写法
				            
                            //好像输出的内容是下面这块line
				            while ((line = bufrError.readLine()) != null) {
				                result.append(line).append('\n');//内容打印到控制台换行
				                System.out.println("line2: "+line);//内容打印到控制台
				                String bc = line; //bc接收line的内容
				                
				                outputBuf.append(line);//输出内容
				                outputBuf.append("\n");//换行
				            }
				            //显示该方法,同textArea.setText(msg)
				            showContent(outputBuf.toString());


                            } catch (Throwable t) {
							t.printStackTrace();
						}
 
					}
				});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试狂人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值