下边这个程序虽然很简单,但是很长,不好意思,浪费您宝贵的时间。
我是个java的初学者,真心的希望您能帮帮我。
谢谢您!
import java.awt.*;
import java.awt.geom.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
public class JFrame_9 extends javax.swing.JFrame 
{
    public JFrame_9()
    {
        initComponents ();
        pack ();
       SketchFrame frame = new SketchFrame();
       frame.show();
      
    }   
    private void initComponents() {
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        }
        );
    }  
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit (0);
    }  
class SketchFrame extends JFrame
{
    public SketchFrame()
    {
        setTitle("Sketch");
        setSize(500,500);
        SketchPanel panel = new SketchPanel();
        Container contentPane = getContentPane();
        contentPane.add(panel);
        
    }
}
class SketchPanel extends JPanel
{
    public SketchPanel()
    {
        last = new Point2D.Double(100,100);
        lines = new ArrayList();
        KeyHandler listener = new KeyHandler();
        addKeyListener(listener);
   setFocusable(true);
    }
    public void add(int dx,int dy)
    {
        Point2D end = new Point2D.Double(last.getX() + dx,last.getY() + dy);
        Line2D line = new Line2D.Double(last,end);
        lines.add(line);
        repaint();
        last = end;
    }
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D)g;
        for(int i = 0;i<lines.size();i++)
            g2.draw((Line2D)lines.get(i));
    }
    private Point2D last;
    private ArrayList lines;
    private static final int SM = 1;
    private static final int LA = 5;
    private class KeyHandler implements KeyListener
    {
        public void keyPressed(KeyEvent event)
        {
            int keyCode = event.getKeyCode();
            int d;
            if(event.isShiftDown())
                 d= LA;
            else 
                d = SM;
            if(keyCode == KeyEvent.VK_LEFT)  add(-d,0);
            else if (keyCode == KeyEvent.VK_RIGHT)  add(d,0);
            else if (keyCode ==KeyEvent.VK_UP)  add(0,-d);
            else if (keyCode == KeyEvent.VK_DOWN)  add(0,-d);
        }
        public void keyReleased(KeyEvent event){}
        public void keyTyped(KeyEvent event)
        {
            char keyChar = event.getKeyChar();
            int d;
            if(Character.isUpperCase(keyChar))
            {
                d = LA;
                keyChar = Character.toLowerCase(keyChar);
            }
            else
                d = SM;
            
        }
    }
}
    public static void main (String args[]) {
        new JFrame_9 ().show ();
    }
}
为什么运行以后会出现这种情况,setFocusable()函数是不是没有被import ?
JFrame_9.java [73:1] No method found matching setFocusable(boolean)
       setFocusable(true);
       ^
1 error
不好意思,浪费您这么长时间,
谢谢您了!