import java.demo_Java 模拟键盘输入的小Demo

[ JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe   JDK6 API

import java.awt.AWTException;

import java.awt.Robot;

import java.awt.event.KeyEvent;

public class RobotDemo

{

private Robot robot = null;

public RobotDemo()

{

try

{

robot = new Robot();

}

catch (AWTException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

}

//模拟Ctrl+Alt+Z的按下和抬起

public void keyBoardDemo()

{

robot.keyPress(KeyEvent.VK_CONTROL);

robot.keyPress(KeyEvent.VK_ALT);

robot.keyPress(KeyEvent.VK_Z);

robot.keyRelease(KeyEvent.VK_CONTROL);

robot.keyRelease(KeyEvent.VK_ALT);

robot.keyRelease(KeyEvent.VK_Z);

}

public static void main(String[] args)

{

RobotDemo demo = new RobotDemo();

demo.keyBoardDemo();

}

} 简单的Demo,[官方详细介绍官方文档里有个bug追查代码才发现的isVirtualWebappRelative - Should \"virtual\" SSI directivepaths be interpreted as relative to th]运行就会执行按下ctrl+alt+z的操作!qq就弹出来了!以后的目的,等待邪恶!

[本文转http://googledave.javaeye.com/blog/438474ssi直译server side include ,服务器端包括关键字: tomcat ssi shtm]

能将以下kotlin代码转换成java吗 package com.blog.demo41 import android.os.Bundle import android.util.Log import android.view.View import android.widget.Button import com.blog.AbstractLoggerActivity import com.blog.R import com.blog.demo39.TAG import com.blog.support.logger.Logger import java.io.BufferedReader import java.io.IOException import java.io.InputStream import java.io.InputStreamReader class StrokeOrderActivity : AbstractLoggerActivity() { var svgSix: String? = null var svgOne: String? = null lateinit var strokeOrderView1: StrokeOrderView lateinit var strokeOrderView2: StrokeOrderView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_stroke_order_layout) initLoggerLayout() strokeOrderView1 = findViewById(R.id.stroke_order_view1) strokeOrderView2 = findViewById(R.id.stroke_order_view2) findViewById<Button>(R.id.btn_load_svg_six).setOnClickListener { val name = "张.json" // 需要将 svg.json 放在 assets 或特定路径下 svgSix = loadSvgFromAssets(name) showTips("加载$name ->$svgSix") svgSix?.let { showTips("start draw -> $name") strokeOrderView1.setStrokesBySvg(it) } } findViewById<Button>(R.id.btn_load_svg_one).setOnClickListener { val name = "張.json" svgOne = loadSvgFromAssets(name) showTips("加载$name ->$svgOne") svgOne?.let { showTips("start draw -> $name") strokeOrderView2.setStrokesBySvg(it) } } } private fun loadSvgFromAssets(name: String): String? { try { assets.list("data")?.let { for (s in it) { if (name == s) { Log.d("zuo", "svgName-> $s") return loadSvgJson("data/$s") ?: "NULL" } } } } catch (e: IOException) { e.printStackTrace() } return null } private fun loadSvgJson(file: String): String? { var reader: BufferedReader? = null var inputStreamReader: InputStreamReader? = null try { val inputStream: InputStream = assets.open(file) inputStreamReader = InputStreamReader(inputStream) reader = BufferedReader(inputStreamReader) var line: String? val entity = java.lang.StringBuilder() while (reader.readLine().also { line = it } != null) { entity.append(line) } return entity.toString() } catch (e: java.lang.Exception) { e.printStackTrace() } finally { try { inputStreamReader?.close() reader?.close() } catch (e: IOException) { e.printStackTrace() } } return null } private fun showTips(str: String) { Log.d(TAG, str) Logger.i(TAG, str) } }
06-05
可以,以下是转换后的Java代码: ```java package com.blog.demo41; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import androidx.appcompat.app.AppCompatActivity; import com.blog.R; import com.blog.support.logger.Logger; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class StrokeOrderActivity extends AppCompatActivity { private String svgSix = null; private String svgOne = null; private StrokeOrderView strokeOrderView1; private StrokeOrderView strokeOrderView2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_stroke_order_layout); initLoggerLayout(); strokeOrderView1 = findViewById(R.id.stroke_order_view1); strokeOrderView2 = findViewById(R.id.stroke_order_view2); findViewById(R.id.btn_load_svg_six).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String name = "张.json"; // 需要将 svg.json 放在 assets 或特定路径下 svgSix = loadSvgFromAssets(name); showTips("加载" + name + " ->" + svgSix); if (svgSix != null) { showTips("start draw -> " + name); strokeOrderView1.setStrokesBySvg(svgSix); } } }); findViewById(R.id.btn_load_svg_one).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String name = "張.json"; svgOne = loadSvgFromAssets(name); showTips("加载" + name + " ->" + svgOne); if (svgOne != null) { showTips("start draw -> " + name); strokeOrderView2.setStrokesBySvg(svgOne); } } }); } private String loadSvgFromAssets(String name) { try { String[] list = getAssets().list("data"); if (list != null) { for (String s : list) { if (name.equals(s)) { Log.d("zuo", "svgName-> " + s); return loadSvgJson("data/" + s); } } } } catch (IOException e) { e.printStackTrace(); } return null; } private String loadSvgJson(String file) { BufferedReader reader = null; InputStreamReader inputStreamReader = null; try { InputStream inputStream = getAssets().open(file); inputStreamReader = new InputStreamReader(inputStream); reader = new BufferedReader(inputStreamReader); String line; StringBuilder entity = new StringBuilder(); while ((line = reader.readLine()) != null) { entity.append(line); } return entity.toString(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (inputStreamReader != null) { inputStreamReader.close(); } if (reader != null) { reader.close(); } } catch (IOException e) { e.printStackTrace(); } } return null; } private void showTips(String str) { Log.d("TAG", str); Logger.i("TAG", str); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值