当前位置:编程学习 > JAVA >>

graphics画图显示不出来,求解决


import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Panel;


public class TempTest {

public static void main(String[] args) {
Frame f = new Frame();
Panel p= new Panel();
f.setVisible(true);
f.setBounds(100, 100, 400, 400);
f.add(p);
Graphics g = p.getGraphics();
g.drawRect(100, 100, 100, 100);

}

}


为什么矩形不显示,就只有一个空白框? --------------------编程问答-------------------- 重写一下panel 的 paint方法,在里面画图,应该是可以的 --------------------编程问答--------------------
引用 1 楼 jintianhen1 的回复:
重写一下panel 的 paint方法,在里面画图,应该是可以的
这样是可以画图,但是这样画出来的图不就写死了么,我要的是先new 出来一个panel,然后再画图,可以随时添加图元的,怎么实现? --------------------编程问答-------------------- 你想填充这个矩形框么?
g.setColor(Color.red);
g.filRect(100,100,100,100);
--------------------编程问答--------------------
public class TempTest {
 
    public static void main(String[] args) {
        Frame f = new Frame();
        Panel p= new Panel() {

@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
        g.drawRect(100, 100, 100, 100);
}
        
        };
        f.setVisible(true);
        f.setBounds(100, 100, 400, 400);
        f.add(p);
    }
}

一点建议,使用Swing组件,不要再用AWT组件了!
JFrame and JPanel --------------------编程问答--------------------
引用 3 楼 wqguanmu 的回复:
你想填充这个矩形框么?
g.setColor(Color.red);
g.filRect(100,100,100,100);
是我表述有歧义,我的意思是只有一个frame,里面什么都没有,矩形没有画出来 --------------------编程问答--------------------
引用 4 楼 jia20003 的回复:
public class TempTest {
 
    public static void main(String[] args) {
        Frame f = new Frame();
        Panel p= new Panel() {

@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
        g.drawRect(100, 100, 100, 100);
}
        
        };
        f.setVisible(true);
        f.setBounds(100, 100, 400, 400);
        f.add(p);
    }
}

一点建议,使用Swing组件,不要再用AWT组件了!
JFrame and JPanel
我知道这样能画出来,但是我在程序执行的过程中,想往这块添加图形,怎么做呢 --------------------编程问答-------------------- 添加图形的话,你需要使用数据结构来记录,然后在
public void paint(Graphics g) 中读取数据结构然后绘制
改变数据结构的时候,再调一下repaint();

不要使用结构化的方法来添加图形... --------------------编程问答-------------------- 你没有执行重绘
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,