waiting......
高手指点迷津!

解决方案 »

  1.   

    你这行程序有问题:
    JFrame Frame = new SketchFrame();Frame在java中已经被使用: java.awt.Frame
    你换一个名,比如:
    JFrame myFrame = new SketchFrame();
    应该可以。
    另外对象请开头用小写,养成良好的编程习惯 ;)
      

  2.   

    搞定了,呵呵!
    老兄,你写的代码很乱啊!import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Sketch{
      public static void main(String[] args){
        SketchFrame Frame = new SketchFrame();
        Frame.show();
      }
    }class SketchFrame extends JFrame{
      public SketchFrame(){
        setTitle("Sketch");
        setSize(300,300);    Container contentPane = getContentPane();
        contentPane.add(new SketchPanel());    addWindowListener(new WindowAdapter(){
          public void windowClosing(WindowEvent we){
                  System.exit(0);
          }
        });
      }
    }class SketchPanel extends JPanel implements KeyListener{
      public SketchPanel(){
        addKeyListener(this);
      }  public void keyPressed(KeyEvent ke){
        int keyCode = ke.getKeyCode();
        int d;
        if (ke.isShiftDown())
          d = 5;
        else
          d = 1;
        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 ke)
      {
    }  public void keyTyped(KeyEvent ke)
      {
        char keyChar = ke.getKeyChar();
        int d;
        if (Character.isUpperCase(keyChar))
        {
                d = 5;
                keyChar = Character.toLowerCase(keyChar);
        }
        else
                d = 1;
        if (keyChar == 'j') add(-d,0);
        else if (keyChar == 'l') add(d,0);
        else if (keyChar == 'i') add(0,-d);
        else if (keyChar == 'k') add(0,d);
      }  public boolean isFocusTraversable()
      {
        return true;
      }  public void add(int dx,int dy)
      {
        end.x += dx;
        end.y += dy;
        Graphics g = getGraphics();
        g.drawLine(start.x,start.y,end.x,end.y);
        g.dispose();
        start.x = end.x;
        start.y = end.y;  }  private Point start = new Point(0,0);
      private Point end = new Point(0,0);
    }这是第二个,呵呵!
    祝你成功!
    呵呵!
    还有问题发短消息给我!
      

  3.   

    这是第二个,呵呵!
    祝你成功!
    呵呵!
    还有问题发短消息给我!import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    public class ButtonTest{
      public static void main(String[] args){
        ButtonFrame Frame = new ButtonFrame();
        Frame.show();
      }
    }class ButtonFrame extends JFrame{
      public ButtonFrame(){
        setTitle("Button Test");
        setSize(300,300);    addWindowListener(new WindowAdapter(){
          public void windowClosing(WindowEvent e)
          {
            System.exit(0);
          }
                });    Container contentPane = getContentPane();
        contentPane.add(new ButtonPanel());
      }
    }
    class ButtonPanel extends JPanel implements ActionListener{
      public ButtonPanel(){
        yellowButton = new JButton("Yellow");
        blueButton = new JButton("Blue");
        redButton = new JButton("Red");    add(yellowButton);
        add(blueButton);
        add(redButton);    yellowButton.addActionListener(this);
        blueButton.addActionListener(this);
        redButton.addActionListener(this);
      }  public void actionPerformed(ActionEvent e){
        Object source = e.getSource();
        Color backgroundColor = getBackground();
        if(source == yellowButton)
                backgroundColor = Color.yellow;
        else if(source == blueButton)
                backgroundColor = Color.blue;
        else if(source == redButton)
                backgroundColor = Color.red;    setBackground(backgroundColor);
        repaint();
      }  private JButton yellowButton,blueButton,redButton;
    }
      

  4.   

    note:Sketch.java uses or overrides a deprecated API.
    这是说你的程序中用了一个已被弃用的方法。不影响正常运行的,但最好是找到是哪个方法,然后用相应方法来替代。Unrecognized option :-deprecation
    这个似乎不应该出问题啊。不知道怎么回事Do not use ButtonPanel.add() 
    use ButtonPanel.getContentPane().add() instead
    这不是告诉你怎么做了嘛。:)
    JFrame需要用getContentPane()方法得到一个容器,然后再往容器上放组件。
      

  5.   

    1.4和1.3有很多不同的,它的方法可能已经不建议使用,有了其他的更好的替代的方法了..你可以根据提示看1.4的api,里面有详细的介绍..
      

  6.   

    楼主的程序是在一个自定义的面板上添加按钮:
    ButtonPanel.add() 
    这样没错啊!问题在这里:
    class ButtonPanel extends JFrame implements ActionListener
         ************        ********定义的是面板,继承的却是JFrame ,这里才是致命的错误啊!
    楼主的两个程序都犯了,这个错误啊!还有个代码写的太乱了,以后可要注意啊!
    要不别人可不会看了!呵呵!