我的老师都不能搞定。来看看什么问题
题目:编写程序:自定义一个类,继承Frame,创建该类对象,并在其上添加1个标签,标签上初始文字为“A”,当按下键盘的向右方向键时,其文字变为“B”,以此类推,当按下左方向键时,则分别变为当前字母的前一字母。
代码:
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) { }}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("-------"); }}
[解决办法]
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))); } }
[解决办法]
这么简单的东西,老师解决不了?在什么学校,什么老师啊?无语。。。
[解决办法]
母牛 !