Java 字符串 String 转 KeyEvent 工具类

自己根据 java.awt.event.KeyEvent 类来写的字符串转 KeyEvent 的工具类代码,为了方便大家使用。因为搜了一圈没有现成的代码,故做此工具类。

不知道里面有没有错误的键码。

转载请在文章开头注明地址链接和声明。

    public static Integer getCode(String key) {
        Integer code = null;
        switch (key) {
            case "F1":     code=KeyEvent.VK_F1;break;
            case "F2":     code=KeyEvent.VK_F2;break;
            case "F3":     code=KeyEvent.VK_F3;break;
            case "F4":     code=KeyEvent.VK_F4;break;
            case "F5":     code=KeyEvent.VK_F5;break;
            case "F6":     code=KeyEvent.VK_F6;break;
            case "F7":     code=KeyEvent.VK_F7;break;
            case "F8":     code=KeyEvent.VK_F8;break;
            case "F9":     code=KeyEvent.VK_F9;break;
            case "F10":    code=KeyEvent.VK_F10;break;
            case "F11":    code=KeyEvent.VK_F11;break;
            case "F12":    code=KeyEvent.VK_F12;break;
            case "a":      code=KeyEvent.VK_A; break;
            case "b":      code=KeyEvent.VK_B; break;
            case "c":      code=KeyEvent.VK_C; break;
            case "d":      code=KeyEvent.VK_D; break;
            case "e":      code=KeyEvent.VK_E; break;
            case "f":      code=KeyEvent.VK_F; break;
            case "g":      code=KeyEvent.VK_G; break;
            case "h":      code=KeyEvent.VK_H; break;
            case "i":      code=KeyEvent.VK_I; break;
            case "j":      code=KeyEvent.VK_J; break;
            case "k":      code=KeyEvent.VK_K; break;
            case "l":      code=KeyEvent.VK_L; break;
            case "m":      code=KeyEvent.VK_M; break;
            case "n":      code=KeyEvent.VK_N; break;
            case "o":      code=KeyEvent.VK_O; break;
            case "p":      code=KeyEvent.VK_P; break;
            case "q":      code=KeyEvent.VK_Q; break;
            case "r":      code=KeyEvent.VK_R; break;
            case "s":      code=KeyEvent.VK_S; break;
            case "t":      code=KeyEvent.VK_T; break;
            case "u":      code=KeyEvent.VK_U; break;
            case "v":      code=KeyEvent.VK_V; break;
            case "w":      code=KeyEvent.VK_W; break;
            case "x":      code=KeyEvent.VK_X; break;
            case "y":      code=KeyEvent.VK_Y; break;
            case "z":      code=KeyEvent.VK_Z; break;
            case "`":      code=KeyEvent.VK_BACK_QUOTE; break;
            case "0":      code=KeyEvent.VK_0; break;
            case "1":      code=KeyEvent.VK_1; break;
            case "2":      code=KeyEvent.VK_2; break;
            case "3":      code=KeyEvent.VK_3; break;
            case "4":      code=KeyEvent.VK_4; break;
            case "5":      code=KeyEvent.VK_5; break;
            case "6":      code=KeyEvent.VK_6; break;
            case "7":      code=KeyEvent.VK_7; break;
            case "8":      code=KeyEvent.VK_8; break;
            case "9":      code=KeyEvent.VK_9; break;
            case "-":      code=KeyEvent.VK_MINUS; break;
            case "=":      code=KeyEvent.VK_EQUALS; break;
            case "!":      code=KeyEvent.VK_EXCLAMATION_MARK; break;
            case "@":      code=KeyEvent.VK_AT; break;
            case "#":      code=KeyEvent.VK_NUMBER_SIGN; break;
            case "$":      code=KeyEvent.VK_DOLLAR; break;
            case "^":      code=KeyEvent.VK_CIRCUMFLEX; break;
            case "&":      code=KeyEvent.VK_AMPERSAND; break;
            case "*":      code=KeyEvent.VK_ASTERISK; break;
            case "(":      code=KeyEvent.VK_LEFT_PARENTHESIS; break;
            case ")":      code=KeyEvent.VK_RIGHT_PARENTHESIS; break;
            case "_":      code=KeyEvent.VK_UNDERSCORE; break;
            case "+":      code=KeyEvent.VK_PLUS; break;
            case "\t":     code=KeyEvent.VK_TAB; break;
            case "\n":     code=KeyEvent.VK_ENTER; break;
            case "[":      code=KeyEvent.VK_OPEN_BRACKET; break;
            case "]":      code=KeyEvent.VK_CLOSE_BRACKET; break;
            case "\\":     code=KeyEvent.VK_BACK_SLASH; break;
            case ";":      code=KeyEvent.VK_SEMICOLON; break;
            case ":":      code=KeyEvent.VK_COLON; break;
            case "'":      code=KeyEvent.VK_QUOTE; break;
            case "\"":     code=KeyEvent.VK_QUOTEDBL; break;
            case ",":      code=KeyEvent.VK_COMMA; break;
            case ".":      code=KeyEvent.VK_PERIOD; break;
            case "/":      code=KeyEvent.VK_SLASH; break;
            case " ":      code=KeyEvent.VK_SPACE; break;
            case "space":  code=KeyEvent.VK_SPACE; break;
            case "back":   code=KeyEvent.VK_BACK_SPACE; break;
            case "enter":  code=KeyEvent.VK_ENTER; break;
            case "tab":    code=KeyEvent.VK_TAB; break;
            case "ctrl":   code=KeyEvent.VK_CONTROL; break;
            case "alt":    code=KeyEvent.VK_ALT; break;
            case "win":    code=KeyEvent.VK_OPEN_BRACKET; break;
            case "esc":    code=KeyEvent.VK_ESCAPE; break;
            case "delete": code=KeyEvent.VK_DELETE; break;
            case "up":     code=KeyEvent.VK_UP; break;
            case "down":   code=KeyEvent.VK_DOWN; break;
            case "left":   code=KeyEvent.VK_LEFT; break;
            case "right":  code=KeyEvent.VK_RIGHT; break;
            case "home":   code=KeyEvent.VK_HOME; break;
            case "end":    code=KeyEvent.VK_END; break;
            case "pgup":   code=KeyEvent.VK_PAGE_UP; break;
            case "pgdn":   code=KeyEvent.VK_PAGE_DOWN; break;
            case "option": code=KeyEvent.VK_CLOSE_BRACKET; break;
        }
        return code;
    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
public static JFrame main=new JFrame("JAVA端口扫描器"); //显示扫描结果 public static JTextArea Result=new JTextArea("",4,40); //滚动条面板 public static JScrollPane resultPane = new JScrollPane(Result,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); //输入主机名文本框 public static JTextField hostname=new JTextField("localhost",8); //输入ip地址前3位的输入框 public static JTextField fromip1=new JTextField("0",3); //输入ip地址4~6位的输入框 public static JTextField fromip2=new JTextField("0",3); //输入ip地址7~9位的输入框 public static JTextField fromip3=new JTextField("0",3); //输入起始ip地址最后4位的输入框 public static JTextField fromip4=new JTextField("0",3); //输入目标ip地址最后4位的输入框 public static JTextField toip=new JTextField("0",3); //输入最小端口的输入框 public static JTextField minPort=new JTextField("0",4); //输入最大端口的输入框 public static JTextField maxPort=new JTextField("1000",4); //输入最大线程数量的输入框 public static JTextField maxThread=new JTextField("100",3); //错误提示框 public static JDialog DLGError=new JDialog(main,"错误!"); public static JLabel DLGINFO=new JLabel(""); public static JLabel type=new JLabel("请选择:"); //扫描类型 public static JRadioButton radioIp = new JRadioButton("IP地址:"); public static JRadioButton radioHost = new JRadioButton("主机名:",true); //单选框组 public static ButtonGroup group = new ButtonGroup(); public static JLabel P1=new JLabel("端口范围:"); public static JLabel P2=new JLabel("~"); public static JLabel P3=new JLabel("~"); public static JLabel Pdot1 = new JLabel("."); public static JLabel Pdot2 = new JLabel("."); public static JLabel Pdot3 = new JLabel("."); public static JLabel TNUM=new JLabel("线程数:"); public static JLabel RST=new JLabel("扫描结果: "); public static JLabel con=new JLabel(" "); //定义按钮 public static JButton OK = new JButton("确定"); public static JButton Submit = new JButton("开始扫描"); public static JButton Cancel = new JButton("退出"); public static JButton saveButton = new JButton("保存扫描结果"); //菜单栏 public static JMenuBar myBar = new JMenuBar(); public static JMenu myMenu = new JMenu("文件(F)"); public static JMenuItem saveItem = new JMenuItem("保存扫描结果(S)"); public static JMenuItem exitItem = new JMenuItem("退出(Q)"); public static JMenu myMenu2 = new JMenu("帮助"); public static JMenuItem helpItem = new JMenuItem("阅读"); public static void main(String[] args){ main.setSize(500,400); main.setLocation(300,300); main.setResizable(false); main.setLayout(new GridBagLayout()); main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); DLGError.setSize(300,100); DLGError.setLocation(400,400); //添加“菜单栏” myMenu.add(saveItem); myMenu.add(exitItem); myMenu2.add(helpItem); myBar.add(myMenu); myBar.add(myMenu2); main.setJMenuBar(myBar); //设置热键 myMenu.setMnemonic('F'); saveItem.setMnemonic ('S'); //为“另存为”组件设置快捷键为ctrl+s saveItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK)); exitItem.setMnemonic('Q'); exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_E,InputEvent.CTRL_MASK)); //采用表格包型布局 Container mPanel = main.getContentPane(); GridBagConstraints c = new GridBagConstraints(); c.insets = new Insets(10,0,0,10); c.gridx = 0; c.gridy = 0; c.gridwidth = 10; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(type,c); group.add(radioIp); group.add(radioHost); c.gridx = 0; c.gridy = 1; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(radioIp,c); c.gridx = 1; c.gridy = 1; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(fromip1,c); c.gridx = 2; c.gridy = 1; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(Pdot1,c); c.gridx = 3; c.gridy = 1; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(fromip2,c); c.gridx = 4; c.gridy = 1; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(Pdot2,c); c.gridx = 5; c.gridy = 1; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(fromip3,c); c.gridx = 6; c.gridy = 1; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(Pdot3,c); c.gridx = 7; c.gridy = 1; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(fromip4,c); c.gridx = 8; c.gridy = 1; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(P2,c); c.gridx = 9; c.gridy = 1; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(toip,c); c.gridx = 0; c.gridy = 2; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(radioHost,c); c.gridx = 1; c.gridy = 2; c.gridwidth = 3; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(hostname,c); c.gridx = 0; c.gridy = 3; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(P1,c); c.gridx = 1; c.gridy = 3; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(minPort,c); c.gridx = 2; c.gridy = 3; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(P3,c); c.gridx = 3; c.gridy = 3; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(maxPort,c); c.gridx = 0; c.gridy = 4; c.gridwidth = 1; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(TNUM,c); c.gridx = 1; c.gridy = 4; c.gridwidth = 3; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; mPanel.add(maxThread,c);
Java中Robot类详解 概述 概述 Java中Robot类位于java.awt.Robot,该类⽤于为测试⾃动化,⾃运⾏演⽰程序和其他需要控制⿏标和键盘的应⽤程序⽣成本机系统输⼊ 事件,Robot类的主要⽬的是便于Java平台实现⾃动测试。 Robot可以模拟⿏标和键盘的输⼊,相当于Java版的按键精灵。 常⽤⽅法 常⽤⽅法 1.创建实例 Robot robot = new Robot(); 2.延时函数 robot.delay(毫秒值); 3.⿏标按下 robot.mousePress(⿏标上的按键); //⿏标左键:InputEvent.BUTTON1_DOWN_MASK //⿏标中键:InputEvent.BUTTON2_DOWN_MASK //⿏标右键:InputEvent.BUTTON3_DOWN_MASK 4.⿏标释放 robot.mouseRelease(⿏标上的按键); //⿏标左键:InputEvent.BUTTON1_DOWN_MASK //⿏标中键:InputEvent.BUTTON2_DOWN_MASK //⿏标右键:InputEvent.BUTTON3_DOWN_MASK 5.⿏标移动 //⿏标移动到指定位置 robot.mouseMove(int x,int y); 6.⿏标滚轮滑动 //⿏标滚动(参数⼩于0,表⽰向上滚动;参数⼤于0,表⽰向下滚动) robot.mouseWheel(int wheelAmt); 7.键盘按下指定的键 //键盘按下指定的键-----keycode:键盘键值常量,定义在KeyEvent.VK_XXX 中 //KeyEvent.VK_WINDOWS:键盘上的windows键 //KeyEvent.VK_CONTROL:键盘上的ctrl键 //KeyEvent.VK_L:键盘上的L键 robot.keyPress(int keycode); 8.键盘释放指定的键 //键盘按下指定的键-----keycode:键盘键值常量,定义在KeyEvent.VK_XXX 中 //KeyEvent.VK_WINDOWS:键盘上的windows键 //KeyEvent.VK_CONTROL:键盘上的ctrl键 //KeyEvent.VK_L:键盘上的L键 robot.keyRelease(int keycode); 9.获取屏幕指定坐标处像素颜⾊ //获取指定坐标处的像素颜⾊ Color color=robot.getPixelColor(int x,int y); 10.截取指定区域的图像(截图功能) //获取指定矩形区域的图像(截图) BufferedImage bufferedimage=robot.createScreenCapture(Rectangle screenRect); ⽰例:截取指定矩形区域的图像,并保存到指定的路径 public static void main(String[] args) throws AWTException, IOException { Robot robot=new Robot(); //获取指定矩形区域的屏幕图像 BufferedImage bufferedImage=robot.createScreenCapture(new Rectangle(100,100,500,500)); File f=new File("D:\\save.jpg"); OutputStream os=new FileOutputStream(f); ImageIO.write(bufferedImage, "jpg", os); } ⽰例:在指定区域⾃动输⼊指定字符 robot.mouseMove(342, 626); robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); robot.delay(500); robot.keyPress(KeyEvent.VK_L); robot.keyRelease(KeyEvent.VK_L); robot.delay(500); robot.keyPress(KeyEvent.VK_O); robot.keyRelease(KeyEvent.VK_O); robot.delay(500); robot.keyPress(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_V); robot.delay(500); robot.keyPress(KeyEvent.VK_E); robot.keyRelease(KeyEvent.VK_E)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值