JAVA之键盘,鼠标监听事件
2017-04-30 16:29
591 查看
本案设计键盘按钮,画出一个简易键盘,
通过按下,释放键盘
鼠标经过按钮,鼠标点击按钮,鼠标离开按钮
详细解释了鼠标键盘对应事件
先看一下键盘监听接口的API
void keyPressed(KeyEvent e) 按下键时调用。
void keyReleased(KeyEvent e) 当键已被释放时调用。
void keyTyped(KeyEvent e) 键入键时调用。
再看看鼠标监听接口的API
void mouseClicked(MouseEvent e) 在组件上单击(按下并释放)鼠标按钮时调用。
void mouseEntered(MouseEvent e) 当鼠标进入组件时调用。
void mouseExited(MouseEvent e) 当鼠标退出组件时调用。
void mousePressed(MouseEvent e) 在组件上按下鼠标按钮时调用。
void mouseReleased(MouseEvent e) 在组件上释放鼠标按钮时调用。
通过按下,释放键盘
鼠标经过按钮,鼠标点击按钮,鼠标离开按钮
详细解释了鼠标键盘对应事件
先看一下键盘监听接口的API
void keyPressed(KeyEvent e) 按下键时调用。
void keyReleased(KeyEvent e) 当键已被释放时调用。
void keyTyped(KeyEvent e) 键入键时调用。
再看看鼠标监听接口的API
void mouseClicked(MouseEvent e) 在组件上单击(按下并释放)鼠标按钮时调用。
void mouseEntered(MouseEvent e) 当鼠标进入组件时调用。
void mouseExited(MouseEvent e) 当鼠标退出组件时调用。
void mousePressed(MouseEvent e) 在组件上按下鼠标按钮时调用。
void mouseReleased(MouseEvent e) 在组件上释放鼠标按钮时调用。
package com.xiaoqiang; import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; /** * 本类通多个按钮 * 来实现练习键盘监听接口的使用 * @author xiaoqiang * @Time 2017年4月30日 */ public class KeyBoard extends JFrame implements KeyListener,MouseListener{ Container con; JButton[] [] jButton; JPanel jp; JTextArea textArea; JButton reset; private static String[] keys={"1234567890-=","QWERTYUIOP[]","ASDFGHJKL'","ZXCVBNM,./"}; public KeyBoard(){ super("键盘模拟器"); this.draw(); } private void draw(){ con=this.getContentPane(); con.setLayout(null); jButton=new JButton[keys.length][]; for(int i=0;i<keys.length;i++){ jButton[i]=new JButton[keys[i].length()]; for(int j=0;j<keys[i].length();j++){ jButton[i][j]=new JButton(String.valueOf(keys[i].charAt(j))); jButton[i][j].setBounds(10+j*80, 30+i*80, 70, 70); jButton[i][j].setBackground(Color.BLUE); con.add(jButton[i][j]); jButton[i][j].addKeyListener(this); jButton[i][j].addMouseListener(this); } } textArea=new JTextArea(); textArea.setBounds(20, 350, 900, 375); textArea.setEditable(false); con.add(textArea); reset=new JButton("重置"); reset.setBounds(810,190,150,150); reset.addMouseListener(this); con.add(reset); this.setSize(1000, 800); this.setVisible(true); } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } /** * 在按下见键盘时,选择按下按键 * 把指定按键变红 */ @Override public void keyPressed(KeyEvent e) { System.out.println(e.getKeyChar()); for(int i=0;i<keys.length;i++){ for(int j=0;j<keys[i].length();j++){ if(jButton[i][j].getText().equals(String.valueOf(Character.toUpperCase(e.getKeyChar())))){ jButton[i][j].setBackground(Color.red); textArea.setText(textArea.getText()+jButton[i][j].getText()); } } } } /** * 在释放按下键盘时, * 把按下字母恢复到原来状态 */ @Override public void keyReleased(KeyEvent e) { for(int i=0;i<keys.length;i++){ for(int j=0;j<keys[i].length();j++){ if(jButton[i][j].getText().equals(String.valueOf(Character.toUpperCase(e.getKeyChar())))){ jButton[i][j].setBackground(Color.blue); } } } } public static void main(String[] args) { new KeyBoard(); } /** * 鼠标点击把内容放入文本框 */ @Override public void mouseClicked(MouseEvent e) { if(e.getSource().equals(reset)){ textArea.setText(""); }else{ JButton button=(JButton) e.getSource(); for(int i=0;i<keys.length;i++){ for(int j=0;j<keys[i].length();j++){ if(jButton[i][j].getText().equals(button.getText())){ textArea.setText(textArea.getText()+button.getText()); } } } } } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { } /** * 鼠标进入相应组件 * 按钮变红 */ @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub JButton button=(JButton) e.getSource(); for(int i=0;i<keys.length;i++){ for(int j=0;j<keys[i].length();j++){ if(jButton[i][j].getText().equals(button.getText())){ jButton[i][j].setBackground(Color.red); } } } } /** * 鼠标退出组件 * 按钮恢复蓝色 */ @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub JButton button=(JButton) e.getSource(); for(int i=0;i<keys.length;i++){ for(int j=0;j<keys[i].length();j++){ if(jButton[i][j].getText().equals(button.getText())){ jButton[i][j].setBackground(Color.blue); } } } } }
相关文章推荐
- java鼠标与键盘事件监听
- Java_基础—GUI(窗体/鼠标/键盘/动作监听和键盘事件)
- Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
- Java监听键盘鼠标全局事件
- Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
- Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
- Java监听键盘鼠标全局事件
- Java键盘事件监听(2)修改:使用监听键盘事件,而不是改写JTextField
- Java键盘事件监听(1)
- Java中JFrame添加全局键盘监听事件
- Java键盘事件监听(2)
- Java键盘事件监听(2)
- 通过SmartInvoke运用java与flex轻松构建cs程序(捕获鼠标键盘事件)
- Java键盘事件监听(1)
- 用Python监听鼠标和键盘事件(转载)
- Java监听鼠标事件
- Java键盘事件监听(2)
- 用Python监听鼠标和键盘事件
- Java中的字符串鼠标和键盘事件
- 通过监听Windows消息实现控件的键盘和鼠标事件路由