网站首页 > 文章中心 > 其它

键盘按下释放java代码

作者:小编 更新时间:2023-09-23 18:53:43 浏览量:199人看过

java程序设计用代码怎样编写一个"键盘事件"?

求一个java小程序实现键盘按键移动,急急!!

键盘按下释放java代码-图1

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class Test extends JFrame implements KeyListener {

private static final long serialVersionUID = 1L;

private JLabel jl = new JLabel("java程序设计");

private static final int STEP = 10;//设置移动的幅度

public static void main(String[] args) {

new Test().launchFrame();

}

public void launchFrame() {

键盘按下释放java代码-图2

this.add(jl);

this.addKeyListener(this);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

public void keyPressed(KeyEvent e) {//按一个键,可以连续按

key(e);

public void keyReleased(KeyEvent e) {//按下放开一个键

public void keyTyped(KeyEvent e) {//击一下键

public void key(KeyEvent e) {//可以将这个函数添加到上面的三个方法里

switch(e.getKeyCode()) {

case KeyEvent.VK_LEFT ://左箭头

jl.setLocation(jl.getLocation().x - STEP, jl.getLocation().y);

break;

case KeyEvent.VK_RIGHT ://右箭头

jl.setLocation(jl.getLocation().x + STEP, jl.getLocation().y);

case KeyEvent.VK_UP ://上箭头

jl.setLocation(jl.getLocation().x, jl.getLocation().y - STEP);

case KeyEvent.VK_DOWN ://下箭头

jl.setLocation(jl.getLocation().x, jl.getLocation().y + STEP);

另外提醒一下楼上的,应该给JFrame添加KeyListener

Java给按钮添加事件

赞一个, 提前学习, 做好预先 , 是个好习惯.

java图形界面主要有AWT, SWING, SWT, JavaFx等技术

JButton ?(按钮)是SWING里面很常用的组件. 直接添加按钮到窗口,并不会产生任何交互效果.

要想产生交互效果,就需要了解awt,swing的事件处理机制:

事件:用户对组件的一个操作,称之为一个事件;

事件源:发生事件的组件就是事件源;

事件处理器:负责处理事件的方法;

常用的事件(Event) 有:

鼠标事件(MouseEvent:?鼠标按下,移入,移除,滚轮..)

键盘事件(KeyEvent:?键盘按下,释放..)

按钮添加接收器, 不同的事件,接收器不同.

比如ActionEvent 那么他的接收器是ActionListener

KeyEvent 那么他的接收器就是KeyListener

基础知识,大概就是这些.

所以想要JButton产生交互,你就需要给他添加事件处理器,当发生这些事件时,出发该处理器,进行处理.

import?java.awt.*;

import?java.awt.event.*;

import?javax.swing.*;

public?class?ButtonDemo?extends?JFrame?{

public?ButtonDemo()?{

JButton?jbHello?=?new?JButton("Hello");//按钮

jbHello.addActionListener(new?ActionListener()?{//给按钮添加事件接收器

public?void?actionPerformed(ActionEvent?e)?{//接受到事件后,进行下面的处理

System.out.println("Hello?World");//?控制台打印输出

JOptionPane.showMessageDialog(null,?"Hello?World");//?弹出对话框,显示Hello?World

});

add(jbHello);//把按钮添加到窗体

//?窗体属性的设置

setLayout(new?FlowLayout());//?窗体流式布局,?按添加顺序从左到右排列组件

setLocationRelativeTo(null);//?窗体放在显示器中间

setTitle("HelloWord");//?窗体的标题

setVisible(true);//?窗体可见

public?static?void?main(String[]?args)?{

new?ButtonDemo();

看明白了吧, addActionListener是关键

进阶版 :加法计算器.? 代码稍微长一点,.但注释很多

参考代码如下

//AddFrame继承自JFrame类,?并且实现了ActionListener?接口

public?class?AddFrame?extends?JFrame?implements?ActionListener?{

//?组件

JButton?jbClear;//?按钮,?用于,清空数字

public?AddFrame()?{//?构造方法

//?初始化组件

JLabel?jl?=?new?JLabel("+");//文字标签

jbAdd?=?new?JButton("=");

jbAdd.addActionListener(this);//因为本类已经实现了ActionListener接口,所以添加事件的接收器就是自己(this)

jbClear?=?new?JButton("清除");

jbClear.addActionListener(this);

//把组件,添加到窗体

add(jtf1);

add(jl);

add(jbAdd);

add(jbClear);

setLayout(new?FlowLayout());//窗体流式布局,?按添加顺序从左到右排列组件

setTitle("加法计算器");//?窗体的标题

/*

*?实现ActionListener接口?就必须重写actionPerformed方法

*/

public?void?actionPerformed(ActionEvent?e)?{//?当事件产生后,就会执行actionPerformed里的方法

JButton?jbTemp=?(JButton)?e.getSource();//得到事件源

if(jbTemp==jbAdd)?{//如果是从jbAdd产生的事件.那么执行加法操作

//因为是简单案例,就不判断和处理,用户乱输入字母汉字等情况,导致的异常了

int?x?=?Integer.parseInt(jtf1.getText());//从文本框1得到字符串,并转化成数字

}else?if(jbTemp==jbClear)?{//如果事件源是?jbClear,那么清除文本框的文字

jtf1.setText("");

//?main方法

new?AddFrame();//创建一个AddFrame的实例

按钮实现下面功能;当鼠标按下按钮时显示已按下,当释放时显示已释放 java程序

代码我是懒得写!提示关键词 addMouseListener

void mousePressed(MouseEvent e) 鼠标按键在组件上按下时调用.

void mouseReleased(MouseEvent e) 鼠标按钮在组件上释放时调用.

关于java中的事件触发问题: 为什么按下键盘并释放的时候KeyReleased方法没有被调用,代码如下:

你写错事件了,是实现keylistener事件不是继承那个adapter类

import java.awt.event.*;

import java.awt.*;

import javax.swing.*;

public class Test

{

JTextFieldtext1;

public Test()

JFrame frame = new JFrame();

Container contain = frame.getContentPane();

text1 = new JTextField(10);

MyKeyEvent e = new MyKeyEvent();

text1.addKeyListener(e);

contain.setLayout(new FlowLayout());

键盘按下释放java代码-图3

contain.add(text1);

text1.setFocusable(true);

frame.pack();

frame.setVisible(true);

class MyKeyEvent implements KeyListener

@Override

public void keyTyped(KeyEvent e)

public void keyPressed(KeyEvent e)

public void keyReleased(KeyEvent e)

System.out.println(e.getKeyChar());

public static void main(String args[])

Test test = new Test();

java中怎么用程序触发按下一个键呢?

KeyListener

java.awt.event

接口 KeyListener

所有超级接口:

EventListener

所有已知实现类:

AWTEventMulticaster, BasicComboBoxUI.KeyHandler, BasicComboPopup.InvocationKeyHandler, BasicTableUI.KeyHandler, BasicTreeUI.KeyHandler, KeyAdapter

public interface KeyListener

extends EventListener

用于接收键盘事件(击键)的侦听器接口.旨在处理键盘事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象 KeyAdapter 类(仅重写有用的方法).

然后使用组件的 addKeyListener 方法将从该类所创建的侦听器对象向该组件注册.按下、释放或键入键时生成键盘事件.然后调用侦听器对象中的相关方法并将该 KeyEvent 传递给它.

从以下版本开始:

另请参见:

KeyAdapter, KeyEvent, Tutorial: Writing a Key Listener

方法摘要

void keyPressed(KeyEvent e)

按下某个键时调用此方法.

void keyReleased(KeyEvent e)

释放某个键时调用此方法.

void keyTyped(KeyEvent e)

键入某个键时调用此方法.

具体哪个键...

用参数KeyEvent可以判断是按的哪个键

以上就是土嘎嘎小编为大家整理的键盘按下释放java代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章