JFrame的内容转换为JPanel

时间:2014-01-05 10:26:41

标签: java swing jframe jpanel

我有这样的代码,其中甘特图将显示在另一个JFrame上,而不是主UI框架。有没有办法让这里绘制的图形显示在主UI框架的JPanel上?

chart= new JFrame();
final ArrayList<Task> tasks = taskList;
final int ET = processET;
chart.setSize(300, 300);
chart.setContentPane(new JPanel(){
    public void paint(Graphics g){
      for(int j=0;j &lt tasks.size();j++)
        {
            int ST = 0;
            if(j!= tasks.size()-1) ST = tasks.get(j + 1).getStartTime();
            else ST = ET;
            int Product = ST * 20;    
            g.drawRect(50,50,Product,30);
            g.drawString("p"+tasks.get(j).getPID(),(55+(tasks.get(j).getStartTime()*20)),70);
            g.drawString(""+tasks.get(j).getStartTime(),    (50+(tasks.get(j).getStartTime()*20)),100);
        }
        g.drawString(""+ET,50+(ET*20),100);
        }
    });
    chart.pack();
    chart.setLocationRelativeTo(null);
    chart.setVisible(true);

我尝试了这个代码,以便将它放在JPanel上,但显然它不起作用,因此这个查询。请帮忙,谢谢:)

 panel_2 = new JPanel(){ "same thing" };   
 panel.add(panel_2);

1 个答案:

答案 0 :(得分:2)

  

有没有办法让这里绘制的图形显示在主UI框架的JPanel上?

有很多方法。有关详细信息,请参阅this answer。我认为CardLayoutJTabbedPane可能是最简单的,因为代码已经在JPanel中呈现(当前已添加到框架中以供显示)。