我有这样的代码,其中甘特图将显示在另一个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 < 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);
答案 0 :(得分:2)
有没有办法让这里绘制的图形显示在主UI框架的JPanel上?
有很多方法。有关详细信息,请参阅this answer。我认为CardLayout
或JTabbedPane
可能是最简单的,因为代码已经在JPanel
中呈现(当前已添加到框架中以供显示)。