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方法,在里面画图,应该是可以的 --------------------编程问答-------------------- 这样是可以画图,但是这样画出来的图不就写死了么,我要的是先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 --------------------编程问答-------------------- 是我表述有歧义,我的意思是只有一个frame,里面什么都没有,矩形没有画出来 --------------------编程问答-------------------- 我知道这样能画出来,但是我在程序执行的过程中,想往这块添加图形,怎么做呢 --------------------编程问答-------------------- 添加图形的话,你需要使用数据结构来记录,然后在
public void paint(Graphics g) 中读取数据结构然后绘制
改变数据结构的时候,再调一下repaint();
不要使用结构化的方法来添加图形... --------------------编程问答-------------------- 你没有执行重绘
补充:Java , Java SE