写一个简单的运用键盘监听创建的Java文件

一个简单的运用键盘监听创建的java键盘监听模型
我的类名是h2,这个键盘监听展示的是当你按下某个键及松开某个键时,界面所表现出来的变化。

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.*;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import javax.swing.text.AbstractDocument.Content;

public class h2 extends JFrame{
	JTextField jt;
	JLabel lable;
	JPanel panel;
	JButton btnA;
	JButton btnB;
	JButton btnC;
	JButton btnD;
	JButton btnE;
	JButton btnF;
	JButton btnG;
	JButton btnH;
	JButton btnI;
	JButton btnJ;
	JButton btnK;
	JButton btnL;
	JButton btnM;
	JButton btnN;
	JButton btnO;
	JButton btnP;
	JButton btnQ;
	JButton btnR;
	JButton btnS;
	JButton btnT;
	JButton btnU;
	JButton btnV;
	JButton btnW;
	JButton btnX;
	JButton btnY;
	JButton btnZ;
	Color green=Color.pink;
	Color white=Color.white;
     public h2(String name){
    	 super(name);
    	 setSize(650,300);
    	 setLocationRelativeTo(null);
    	 setDefaultCloseOperation(EXIT_ON_CLOSE);
    	 setResizable(false);
    	 
    	 panel=new JPanel();
    	 panel.setBackground(Color.gray);
    	 panel.setBorder(new EmptyBorder(5, 5, 5, 5));
    	 setContentPane(panel);
    	 panel.setLayout(null);
    	 
    	 btnQ=new JButton("Q");
    	 btnQ.setBackground(white);
    	 btnQ.setVerticalAlignment(SwingConstants.TOP);
    	 btnQ.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnQ.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnQ.setBounds(0, 60, 47, 45);
    	 panel.add(btnQ);
    	 
    	 btnW=new JButton("W");
    	 btnW.setBackground(white);
    	 btnW.setVerticalAlignment(SwingConstants.TOP);
    	 btnW.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnW.setFont(new Font("Times New Roman", Font.PLAIN,13));
    	 btnW.setBounds(65, 60, 47, 45);
    	 panel.add(btnW);
    	 
    	 btnE=new JButton("E");
    	 btnE.setBackground(white);
    	 btnE.setVerticalAlignment(SwingConstants.TOP);
    	 btnE.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnE.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnE.setBounds(130, 60, 47, 45);
    	 panel.add(btnE);
    	 
    	 btnR=new JButton("R");
    	 btnR.setBackground(white);
    	 btnR.setVerticalAlignment(SwingConstants.TOP);
    	 btnR.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnR.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnR.setBounds(195, 60, 47, 45);
    	 panel.add(btnR);
    	 
    	 btnT=new JButton("T");
    	 btnT.setBackground(white);
    	 btnT.setVerticalAlignment(SwingConstants.TOP);
    	 btnT.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnT.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnT.setBounds(260, 60, 47, 45);
    	 panel.add(btnT);
    	 
    	 btnY=new JButton("Y");
    	 btnY.setBackground(white);
    	 btnY.setVerticalAlignment(SwingConstants.TOP);
    	 btnY.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnY.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnY.setBounds(325, 60, 47, 45);
    	 panel.add(btnY);
    	 
    	 btnU=new JButton("U");
    	 btnU.setBackground(white);
    	 btnU.setVerticalAlignment(SwingConstants.TOP);
    	 btnU.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnU.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnU.setBounds(390, 60, 47, 45);
    	 panel.add(btnU);
    	 
    	 btnI=new JButton("I");
    	 btnI.setBackground(white);
    	 btnI.setVerticalAlignment(SwingConstants.TOP);
    	 btnI.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnI.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnI.setBounds(455, 60, 47, 45);
    	 panel.add(btnI);
    	 
    	 btnO=new JButton("O");
    	 btnO.setBackground(white);
    	 btnO.setVerticalAlignment(SwingConstants.TOP);
    	 btnO.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnO.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnO.setBounds(520, 60, 47, 45);
    	 panel.add(btnO);
    	 
    	 btnP=new JButton("P");
    	 btnP.setBackground(white);
    	 btnP.setVerticalAlignment(SwingConstants.TOP);
    	 btnP.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnP.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnP.setBounds(585, 60, 47, 45);
    	 panel.add(btnP);
    	 
    	 btnA=new JButton("A");
    	 btnA.setBackground(white);
    	 btnA.setVerticalAlignment(SwingConstants.TOP);
    	 btnA.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnA.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnA.setBounds(20, 120, 47, 45);
    	 panel.add(btnA);
    	 
    	 btnS=new JButton("S");
    	 btnS.setBackground(white);
    	 btnS.setVerticalAlignment(SwingConstants.TOP);
    	 btnS.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnS.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnS.setBounds(85, 120, 47, 45);
    	 panel.add(btnS);
    	 
    	 btnD=new JButton("D");
    	 btnD.setBackground(white);
    	 btnD.setVerticalAlignment(SwingConstants.TOP);
    	 btnD.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnD.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnD.setBounds(150, 120, 47, 45);
    	 panel.add(btnD);
    	 
    	 btnF=new JButton("F");
    	 btnF.setBackground(white);
    	 btnF.setVerticalAlignment(SwingConstants.TOP);
    	 btnF.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnF.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnF.setBounds(215, 120, 47, 45);
    	 panel.add(btnF);
    	 
    	 btnG=new JButton("G");
    	 btnG.setBackground(white);
    	 btnG.setVerticalAlignment(SwingConstants.TOP);
    	 btnG.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnG.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnG.setBounds(280, 120, 47, 45);
    	 panel.add(btnG);
    	 
    	 btnH=new JButton("H");
    	 btnH.setBackground(white);
    	 btnH.setVerticalAlignment(SwingConstants.TOP);
    	 btnH.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnH.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnH.setBounds(345, 120, 47, 45);
    	 panel.add(btnH);
    	 
    	 btnJ=new JButton("J");
    	 btnJ.setBackground(white);
    	 btnJ.setVerticalAlignment(SwingConstants.TOP);
    	 btnJ.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnJ.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnJ.setBounds(410, 120, 47, 45);
    	 panel.add(btnJ);
    	 
    	 btnK=new JButton("K");
    	 btnK.setBackground(white);
    	 btnK.setVerticalAlignment(SwingConstants.TOP);
    	 btnK.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnK.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnK.setBounds(475, 120, 47, 45);
    	 panel.add(btnK);
    	 
    	 btnL=new JButton("L");
    	 btnL.setBackground(white);
    	 btnL.setVerticalAlignment(SwingConstants.TOP);
    	 btnL.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnL.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnL.setBounds(540, 120, 47, 45);
    	 panel.add(btnL);
    	 
    	 btnZ=new JButton("Z");
    	 btnZ.setBackground(white);
    	 btnZ.setVerticalAlignment(SwingConstants.TOP);
    	 btnZ.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnZ.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnZ.setBounds(40, 180, 47, 45);
    	 panel.add(btnZ);
    	 
    	 btnX=new JButton("X");
    	 btnX.setBackground(white);
    	 btnX.setVerticalAlignment(SwingConstants.TOP);
    	 btnX.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnX.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnX.setBounds(105, 180, 47, 45);
    	 panel.add(btnX);
    	 
    	 btnC=new JButton("C");
    	 btnC.setBackground(white);
    	 btnC.setVerticalAlignment(SwingConstants.TOP);
    	 btnC.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnC.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnC.setBounds(170, 180, 47, 45);
    	 panel.add(btnC);
    	 
    	 btnV=new JButton("V");
    	 btnV.setBackground(white);
    	 btnV.setVerticalAlignment(SwingConstants.TOP);
    	 btnV.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnV.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnV.setBounds(235, 180, 47, 45);
    	 panel.add(btnV);
    	 
    	 btnB=new JButton("B");
    	 btnB.setBackground(white);
    	 btnB.setVerticalAlignment(SwingConstants.TOP);
    	 btnB.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnB.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnB.setBounds(300, 180, 47, 45);
    	 panel.add(btnB);
    	 
    	 btnN=new JButton("N");
    	 btnN.setBackground(white);
    	 btnN.setVerticalAlignment(SwingConstants.TOP);
    	 btnN.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnN.setFont(new Font("Times New Roman", Font.PLAIN,16));
    	 btnN.setBounds(365, 180, 47, 45);
    	 panel.add(btnN);
    	 
    	 btnM=new JButton("M");
    	 btnM.setBackground(white);
    	 btnM.setVerticalAlignment(SwingConstants.TOP);
    	 btnM.setHorizontalAlignment(SwingConstants.LEADING);
    	 btnM.setFont(new Font("Times New Roman", Font.PLAIN,14));
    	 btnM.setBounds(430, 180, 47, 45);
    	 panel.add(btnM);
    	 
    	JPanel panel1 = new JPanel() ;
    	panel1.setBorder(new TitledBorder(null,"文本显示区",TitledBorder.LEADING,TitledBorder.TOP)); 
    	panel1.setBackground(Color.WHITE);
    	panel1.setBounds(0,0,630,45);
    	panel.add(panel1) ;
    	panel1.setLayout(new BorderLayout(0, 0));
    	
    	jt=new JTextField();
    	panel1.add(jt,BorderLayout.CENTER);
    	jt.setColumns(27);
    	
    	List<JButton> list=new ArrayList<>();
    	Component       items[]=panel.getComponents();
    	for(Component c:items) {
    		if(c instanceof JButton) {
    			list.add((JButton)c);
    		}
    	}
    	
    	jt.addKeyListener(new KeyListener() {
			
			@Override
			public void keyTyped(KeyEvent e) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void keyReleased(KeyEvent e) {
				char ch=e.getKeyChar();
				for(JButton btn:list) {
					String btntext=btn.getText();
					if(btntext.equalsIgnoreCase(String.valueOf(ch))) {
						btn.setBackground(white);
					}
				}
			}
			
			@Override
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub
				char ch=e.getKeyChar();
				for(JButton btn:list) {
					String btntext=btn.getText();
					if(btntext.equalsIgnoreCase(String.valueOf(ch))) {
						btn.setBackground(green);
					}
				}
			}
		});
    	

    	 setVisible(true);
     
     }
     public static void main(String[] args) {
		new h2("虚拟键盘");
	}
}

最后展示的效果是这这样的:
按下w时
在这里插入图片描述
在这里插入图片描述回复原状

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一树繁花的博客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值