这是类:package windows;
import  javax.swing.*;
import java.awt.*;
/**
 *
 * @author Administrator
 */
public class color {
private int wight;
private int height;
private int x;
private int y;
private JFrame widow;
private Color color;public color()
{
widow=new JFrame("box");
widow.setSize(200,200);wight=40;
height=20;
x=80;
y=90;
color=Color.black;
widow.setVisible(true);
}
public void paint()
{    Graphics g=widow.getGraphics();
g.setColor(color);
g.fillRect(wight,height,x,y);
}
}这是主程序:
package windows;import javax.swing.*;
import java.awt.*;
import java.io.*;public class Main {       public static void main(String[] args)throws IOException {
 color c1=new color();
  color c2=new color();  c1.paint();
   c2.paint();
    }
}为什么不能在我构建的矩形中打印有颜色的矩形呢   谁来告诉我一下   谢谢了

解决方案 »

  1.   

    你重写的paint方法不对,想要paint一个组建的话,如果是awt,重写Component中的paint(Graphics g)方法,如下:public void paint(Graphics g) 

    g.setColor(color); 
    g.fillRect(wight,height,x,y); 

    } 建议你的weight,height还有color都换一个名字,一面和java api中的命名冲突
      

  2.   

    widow=new JFrame("box"); 
    widow.setSize(200,200); 
    我看这个 widow 有问题 是window吧
      

  3.   

    兄弟,刚学Java不用急着画图吧?
      

  4.   

    其实是画了的,但是只画了一次,在重绘的时候还是按默认方式画了,把你画的盖掉了。你仔细观察应该可以看到闪了一下黑方块。因为你写的方法不对,不能由窗口重绘机制来回调你的paint方法,只能你自己来调用。
    还是多看看例子程序吧。这样就不会写出这么奇怪的代码了。
      

  5.   

    搂主的程序有点乱哦,类名应该以大写字母开头,且跟 api 中已有类名冲突
      

  6.   

    core java 书写规范:
    1.类名:每个单词首字母大写。
    2.变量和方法:第一个单词小写,后面每个单词的首字母大写。
    3.包名:全部小写。
    4.常量:全部大写。
      

  7.   


    import  javax.swing.*;
    import java.awt.*;
    import java.io.*;
    import java.awt.geom.*;
    /**
    *
    * @author Administrator
    */
    class colorFrame extends JFrame{
    public colorFrame(Color c){
    setSize(width,height);
    recttanglePanel rp=new recttanglePanel(c);
    Container  contentpane=getContentPane();
    contentpane.add(rp);
    }
    private static final int  width=200;
    private static final int  height=300;}
    class recttanglePanel extends JPanel{
    private Color c;
    public recttanglePanel(Color c){
    this.c=c;
    }
    public void paintComponent(Graphics  g){
    super.paintComponent(g);
    Graphics2D  g2=(Graphics2D)g;
    double leftx=20;
    double  topy=30;
    double height=50;
    double width=50;
    Rectangle2D rect=new Rectangle2D.Double(leftx,topy,width,height);
    g2.setPaint(c);
    g2.fill(rect);
    }
    }public class java {      public static void main(String[] args)throws IOException {
           colorFrame  cf=new colorFrame(Color.cyan);
           cf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           cf.setVisible(true);
        }

      

  8.   

    这个你试试
    创建一个java.java的文件
    把代码粘进去,运行一下。