drawdemo panel=new drawdemo();
这一句不正确吧,你的构造方法中是有参数的.应该传一个参数进去

解决方案 »

  1.   

    好久没有接触Swing了,我觉得是不是panel也要设置一下setVisible(true)呢?
      

  2.   

    public void drawdemo(Graphics g){改成public  void paintComponent(Graphics g)不然这一句根本不可能执行.
      

  3.   

    frame.getContentPane().add(panel, BorderLayout.CENTRE);
    加上这句就能够显示了.GOOD LUCKY
      

  4.   

    drawdemo panel=new drawdemo();
    这一句不正确吧,你的构造方法中是有参数的.应该传一个参数进去
    如果传送一个Graphics g会报错:
    --------------------Configuration: <Default>--------------------
    E:\small\drawdemo.java:19: ')' expected
                    drawdemo panel=new drawdemo(Graphics g);
                                                         ^
    E:\small\drawdemo.java:19: cannot resolve symbol
    symbol  : variable Graphics 
    location: class demo.drawdemo
                    drawdemo panel=new drawdemo(Graphics g);
                                                ^
    2 errorsProcess completed.是不是因为Graphics是个虚拟类不能够产生一个实体?
    vgvg(java)(要做就做最好) 是对的,程序只执行默认的构造函数。谢了
    King_Style(杰缘) 提到的panel也要设置一下setVisible(true),没有必要,super.paintComponent(g);g.setColor(setForeground(Color.black));已经设置了.不过g.setColor(setForeground(Color.black))要改为g.setColor(getForeground());因为setForeground(Color.black)返回void,而这里需要设一个值。
    cyicecream(为了升仙(星)到处UP)题的建议对程序好像没什么作用。
    谢谢诸位:)
      

  5.   

    这是什么设计模式啊?
    Graphics g  g对象每次都不同啊。
    建议:
    Class Frame
    public void paint(Graphics g){
       drawdemo.setGraphics(g);
       drawdemo.paint();
    }
      

  6.   

    这是什么设计模式啊?
    Graphics g  g对象每次都不同啊。
    建议:
    Class Frame
    public void paint(Graphics g){
       drawdemo.setGraphics(g);
       drawdemo.repaint();
    }
      

  7.   

    public void drawdemo(Graphics g){改成public  void paintComponent(Graphics g)不然这一句根本不可能执行.
      

  8.   

    修改后的代码`
     你错了那里`自己去思考`
    package demo;import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import demo.*;//WindowsCloser;public class drawDemo extends JPanel{

    public void paintComponent(Graphics g){
    super.paintComponent(g);
    g.drawString("hi",10,20);
    g.fillRect(10,25,30,20);
    }

    public static void main(String args[]){
    JFrame frame=new JFrame("Drawing panel");
    drawDemo panel=new drawDemo();
    frame.getContentPane().add(panel);
    frame.setSize(600,450);
    frame.setVisible(true);
    }
    }