Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我得到了以下代码的部分输出_Java_Event Handling_Keyevent - Fatal编程技术网

Java 我得到了以下代码的部分输出

Java 我得到了以下代码的部分输出,java,event-handling,keyevent,Java,Event Handling,Keyevent,因为我是一个真正的编程高手,所以我试图写出这段代码,我得到了部分输出。其想法是打印小程序上键入的字符,如果按下alt或shift键,则必须在状态栏中显示该字符。问题是小程序上没有响应,但按alt或shift键时,状态栏上会出现相应的响应。代码如下: import java.awt.*; import java.applet.*; import java.awt.event.*; /* <applet code="MyKeyApplet.class" width =

因为我是一个真正的编程高手,所以我试图写出这段代码,我得到了部分输出。其想法是打印小程序上键入的字符,如果按下alt或shift键,则必须在状态栏中显示该字符。问题是小程序上没有响应,但按alt或shift键时,状态栏上会出现相应的响应。代码如下:

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

/* <applet code="MyKeyApplet.class"
           width = "400"
           height = "400">
   </applet>*/

public class MyKeyApplet extends Applet implements KeyListener{
    char ch;
    String str=" ";

    public void init(){
        this.addKeyListener(this);
        requestFocus();
    }

    public void keyPressed(KeyEvent k){
        int x = k.getKeyCode();
        if(x==KeyEvent.VK_SHIFT)
            showStatus("You pressed Shift Key");
        else if (x==KeyEvent.VK_ALT)
            showStatus("You pressed Alt Key");
    }

    public void paint(Graphics g){
        g.drawString(str,40,40);
    }

    public void keyTyped(KeyEvent k){
        ch=k.getKeyChar();
        str="You Pressed" + ch;
        repaint();
    }

    public void keyReleased(KeyEvent k){
    }

}   
import java.awt.*;
导入java.applet.*;
导入java.awt.event.*;
/* 
*/
公共类MyKeyApplet扩展小程序实现KeyListener{
char ch;
字符串str=“”;
公共void init(){
this.addKeyListener(this);
requestFocus();
}
按下公共无效键(KeyEvent k){
int x=k.getKeyCode();
if(x==KeyEvent.VK_SHIFT)
showStatus(“您按下了Shift键”);
else if(x==KeyEvent.VK_ALT)
showStatus(“您按下了Alt键”);
}
公共空间涂料(图g){
g、 抽绳(str,40,40);
}
public void keyTyped(KeyEvent k){
ch=k.getKeyChar();
str=“您按下了”+ch;
重新油漆();
}
公共无效密钥已释放(密钥事件k){
}
}   

我还没有测试过自己,但这个答案可能会有帮助:

从我在代码中可以看出,您只需要检查修改器按键(ctrl、alt、shift等),而不需要处理其他按键的任何情况。同样,我还没有对此进行测试,但是您可能希望修改代码,以便有两个单独的处理操作:一个用于检查是否按下了修改器键,然后另一个用于处理非修改器的任何按键。大概是这样的:

public void keyPressed(KeyEvent k){
    int x = k.getKeyCode();
    if(x==KeyEvent.VK_SHIFT)
        showStatus("You pressed Shift Key");
    else if (x==KeyEvent.VK_ALT)
        showStatus("You pressed Alt Key");
    else
      str += k.getKeyChar(); // Add the pressed key to the string.
}

顺便说一句,虽然我不是100%清楚你的程序应该做什么,但是如果你计划继续构建一个字符串,你可能会发现使用。

@AdithyaIyer会有更好的性能,很高兴我能提供帮助。