首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

我的老师都不能搞定。来看看什么有关问题

2011-12-26 
我的老师都不能搞定。来看看什么问题题目:编写程序:自定义一个类,继承Frame,创建该类对象,并在其上添加1个

我的老师都不能搞定。来看看什么问题
题目:编写程序:自定义一个类,继承Frame,创建该类对象,并在其上添加1个标签,标签上初始文字为“A”,当按下键盘的向右方向键时,其文字变为“B”,以此类推,当按下左方向键时,则分别变为当前字母的前一字母。
代码:

Java code
import java.awt.*;import java.awt.event.*;public class Java extends Frame implements KeyListener{    static Label l= new Label("A");        public static void main(String args[]) {        Java j = new Java();        l.addKeyListener(j);        j.setSize(200,200);        j.add(l);        j.setVisible(true);    }            public void keyPressed(KeyEvent e)         {            if (e.getKeyCode()==e.VK_LEFT) {                l.setText("B");            }                if(e.getKeyCode()==e.VK_RIGHT) {                l.setText("A");            }                         }    public void keyTyped(KeyEvent e) {    }    public void keyReleased(KeyEvent e) {    }}

哪里出错了?

[解决办法]
static Label l= new Label("A");
改为
static JTextField l= new JTextField("A");

Label 不能获取焦点,没有key事件
[解决办法]
看着代码是没有问题的,等大神出现
[解决办法]
你添加的侦听有问题,对一个可以接受输入的组件添加侦听,下面已经实现了左右键控制标签显示A B,剩下业务逻辑你自己实现吧
Java code
import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Java extends JFrame implements KeyListener{    static JLabel l= new JLabel("A");    static JTextField tf=new JTextField(15);    public static void main(String args[]) {        Java j = new Java();        j.setSize(200,200);        j.getContentPane().setLayout(new FlowLayout());        j.getContentPane().add(l);        j.getContentPane().add(tf);        tf.addKeyListener(j);        j.setVisible(true);        j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }        public void keyPressed(KeyEvent e){            if (e.getKeyCode()==KeyEvent.VK_LEFT) {                System.out.println("-------");                l.setText("B");                            }            if(e.getKeyCode()==KeyEvent.VK_RIGHT) {                l.setText("A");            }        }    public void keyTyped(KeyEvent e) {//        System.out.println("-------");    }    public void keyReleased(KeyEvent e) {//        System.out.println("-------");    }}
[解决办法]
探讨
l.addKeyListener(j);

[解决办法]
把label放到JPanel里,给JPanel添加事件
[解决办法]
探讨

引用:
l.addKeyListener(j);

改成
j.addKeyListener(j);

道理是1楼说的。

[解决办法]
l.setFocusable(true);
[解决办法]
添加一个键盘监听事件,由键盘触发时,,,,,对Label做响应.设置植!!!
[解决办法]
大牛们,你们把需求理解错误了。楼主应该是想要按右键,当前字符+1,比如A变成B,B变成C。按左键则少1。
Java code
public void keyPressed(KeyEvent e){            if (e.getKeyCode()==KeyEvent.VK_LEFT) {                System.out.println("-------");                String txt = l.getText();                char c = txt.charAt(0);                if(!txt.equals("A"))                    l.setText(String.valueOf((char)(c-1)));                            }            if(e.getKeyCode()==KeyEvent.VK_RIGHT) {                String txt = l.getText();                char c = txt.charAt(0);                if(!txt.equals("Z"))                    l.setText(String.valueOf((char)(c+1)));            }        } 


[解决办法]
这么简单的东西,老师解决不了?在什么学校,什么老师啊?无语。。。
[解决办法]
母牛 !

热点排行