当前位置: 代码迷 >> Java相关 >> 在JFrame的contentpane面板里面画一个圆
  详细解决方案

在JFrame的contentpane面板里面画一个圆

热度:177   发布时间:2007-10-17 18:27:03.0
在JFrame的contentpane面板里面画一个圆

我在contentpane里面画一个圆
我新建一个JFrame取得它的内容面板,再用getGraphics!!却返回null
想问下这个问题怎么解决!!!
请教了!!!!!!!!!!!

搜索更多相关的解决方案: JFrame  contentpane  面板  

----------------解决方案--------------------------------------------------------
以下是引用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方法,

----------------解决方案--------------------------------------------------------