我有一个JApplet(MainClass扩展JApplet),一个JPanel(ChartWindow扩展JPanel)和一个Grafico类。
问题在于Grafico类实例有2个JPanel,应该显示2个图像(每个面板1个)但显示图像,过了一会儿它们消失了:而不是它们我得到一个灰色背景(像一个空的的JPanel)。每次repaint()调用(在ChartWindow类中进行)
都会发生这种情况 MainClass init()
包含
chartwindow=new ChartWindow();
add(chartwindow)
chartwindow有一个Grafico实例。
这是ChartWindow的paintComponent
(覆盖)
paintComponent(Graphics g)
{
super.paintComponent(g);
Image immagineGrafico=createImage(grafico.pannelloGrafico.getWidth()
,grafico.pannelloGrafico.getHeight());
Image immagineVolumi=createImage(grafico.pannelloVolumi.getWidth()
,grafico.pannelloVolumi.getHeight());
Graphics2D imgGrafico=(Graphics2D)immagineGrafico.getGraphics();
Graphics2D imgVolumi=(Graphics2D)immagineVolumi.getGraphics();
grafico.draw(imgGrafico,imgVolumi,mouseX,mouseY);
((Graphics2D)grafico.pannelloGrafico.getGraphics()).drawImage(immagineGrafico,0,0,this);
((Graphics2D)grafico.pannelloVolumi.getGraphics()).drawImage(immagineVolumi,0,0,this);
}
grafico的JPanels以这种方式添加到ChartWindow的构造函数中
grafico=new Grafico()
................
add(grafico.pannelloGrafico);
add(grafico.pannelloVolumi);
告诉我您是否需要更多信息,非常感谢: - )
答案 0 :(得分:2)
如果要在它们上绘画,则需要覆盖JPanel的paintComponent而不是图表窗口。发生的事情是,每当JPanel自己绘制时,默认的绘画都会覆盖你的图像。
class PanelloVolumi extends JPanel{
//some code
public void paintComponent(Graphics g){
//paint one image here
}
}
为其他JPanel做同样的事情。
然后将这些JPanel的实例添加到Applet中。