在JFrame的contentpane面板里面画一个圆
我在contentpane里面画一个圆
我新建一个JFrame取得它的内容面板,再用getGraphics!!却返回null
想问下这个问题怎么解决!!!
请教了!!!!!!!!!!!
----------------解决方案--------------------------------------------------------
以下是引用george_vcool在2007-10-17 18:27:03的发言:
我在contentpane里面画一个圆
我新建一个JFrame取得它的内容面板,再用getGraphics!!却返回null
想问下这个问题怎么解决!!!
请教了!!!!!!!!!!!
setVisible(true)先.
组件在没显示之前是得不到其graphics的.
----------------解决方案--------------------------------------------------------
回复:(Eastsun)以下是引用george_vcool在2007-10-1...
我在里面画了个圆!!!但是当我把别的东西放在前面之后!!
黑色的圆就没有了,请问如何解决这个问题!!
----------------解决方案--------------------------------------------------------
把你的代码贴出来看看。
----------------解决方案--------------------------------------------------------
把黑色的圆用一个容器保存起来,然后以此画出来。LZ是想实现一个画图工具吗?
----------------解决方案--------------------------------------------------------
把绘图代码写进 public void paintComponent(Graphics g)
----------------解决方案--------------------------------------------------------
import javax.swing.*;
import java.awt.*;
class Twoball{
public Twoball(){
JFrame f=new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel content=new JPanel();
f.setContentPane(content);
content.setBackground(Color.white);
f.setSize(new Dimension(500,500));
content.setBackground(Color.white);
f.setVisible(true);
Graphics g=content.getGraphics();
g.setColor(Color.black);
g.fillOval(0,0,50,50);
//g.drawOval(0,0,50,50);
g.drawOval(0,0,50,50);
g.drawString("hello",80,80);
}
public static void main(String[] args){
Twoball b=new Twoball();
}
}
代码就是这样的,想问下为什么有时候哪个圆能显示,有时候却不能显示,如果显示的时候,把另外一些图片放在前面,然后哪个圆就消失了?
这是什么原因啊?
请教了?
----------------解决方案--------------------------------------------------------
应该是repaint()没的。。。
[此贴子已经被作者于2007-10-18 13:16:22编辑过]
----------------解决方案--------------------------------------------------------
放在最后执行就得不到graphics!!!!
----------------解决方案--------------------------------------------------------
把画的动作放到paint方法里面去
最好还是写一个继承自JPanel的组件,然后重写其paintComponent方法,
----------------解决方案--------------------------------------------------------