用户lucky-题目2的代码-键盘监听事件、swing界面

    技术2022-07-11  86

    package com.han; import java.awt.Container; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.SpringLayout; /** * 键盘事件监听(1) * @author HAN * */ public class KeyEvent_1 extends JFrame { String string="";//储存字母 private int i=0; private String stringfiveString=""; /** * */ private static final long serialVersionUID = -6762512303624322086L; public KeyEvent_1() { // TODO Auto-generated constructor stub Container container = getContentPane(); SpringLayout springLayout = new SpringLayout(); container.setLayout(springLayout); JLabel remarqueLabel = new JLabel(""); JTextArea textArea = new JTextArea(3, 30); JScrollPane scrollPane = new JScrollPane(); scrollPane.setViewportView(textArea); container.add(remarqueLabel); springLayout.putConstraint(SpringLayout.WEST, remarqueLabel, 5, SpringLayout.WEST, container); springLayout.putConstraint(SpringLayout.NORTH, remarqueLabel, 5, SpringLayout.NORTH, container); container.add(scrollPane); springLayout.putConstraint(SpringLayout.WEST, scrollPane, 5, SpringLayout.EAST, remarqueLabel); springLayout.putConstraint(SpringLayout.NORTH, scrollPane, 5, SpringLayout.NORTH, container); springLayout.putConstraint(SpringLayout.EAST, scrollPane, -5, SpringLayout.EAST, container); springLayout.putConstraint(SpringLayout.SOUTH, scrollPane, -5, SpringLayout.SOUTH, container); textArea.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) {//获取字符 if(!String.valueOf(e.getKeyChar()).matches("\\p{Alnum}")) {//匹配非字母 if(String.valueOf(e.getKeyChar()).equals("你")) {//匹配字符 System.out.print("大家");//将你变成大家 }else if(!String.valueOf(e.getKeyChar()).matches("你")){ System.out.print(e.getKeyChar()); }else { System.out.print(e.getKeyChar()); } } } @Override public void keyPressed(KeyEvent e) { // 写大写字母时,释放按键是不知道是否先释放的是shift还是字母按键;但是 // 可以肯定的是按按键时必须是先按的shift。 if (e.getKeyCode() == KeyEvent.VK_CONTROL || e.getKeyCode() == KeyEvent.VK_SHIFT || e.getKeyCode() == KeyEvent.VK_ALT) { // System.out.print("测试"+e.getSource()); } if (!(e.isControlDown() || e.isShiftDown() || e.isAltDown())) { // System.out.print(e.getSource()); } String keyText = KeyEvent.getKeyText(e.getKeyCode()); if (e.isActionKey()) { // System.out.print("The action key you pressed : " + "\"" // + keyText + "");这里是显示字母输入 string+=keyText; } else { //控制键 if(keyText.matches("\\p{Alpha}{1}")) { if(i==9) { i=0; stringfiveString=""; } stringfiveString+= keyText; i++; } int keyCode = e.getKeyCode(); switch (keyCode) { case KeyEvent.VK_CONTROL: System.out.println("您按了Control键"); break; case KeyEvent.VK_SHIFT: System.out.println("您按了Shift键"); break; case KeyEvent.VK_ALT: System.out.println("您按了Alt键"); break; case KeyEvent.VK_BACK_SPACE: stringfiveString=""; textArea.setText(null); break; case KeyEvent.VK_ENTER: if(textArea.getText().trim().equals("close")) { System.exit(2); } if(textArea.getText().trim().equals("CLOSE")) { System.exit(2); } break; } } if(stringfiveString.lastIndexOf("CLOSE")!=-1) { System.out.println("E再见"); System.exit(2); }else { System.out.print(keyText); } } @Override public void keyReleased(KeyEvent e) { // System.out.print( // KeyEvent.getKeyText(e.getKeyCode()) + );//输出控制键 } }); } /** * @param args */ public static void main(String[] args) { System.out.println("请在java程序输入内容"); System.out.println("输入你好自动换成大家好"); System.err.println("退出前请清空文本,再输入close并按回车键"); KeyEvent_1 frame = new KeyEvent_1(); frame.setTitle("KeyEvent Test"); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(0, 0, 600, 300); } }
    Processed: 0.012, SQL: 9