У меня есть этот код, в котором диаграмма Ганта будет отображаться на другом JFrame
, кроме основного фрейма пользовательского интерфейса. Есть ли способ, чтобы нарисованная графика здесь была показана на JPanel
на основном фрейме пользовательского интерфейса?Содержание конверсии JFrame в 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);
Вам нужно добавить 'панель' в рамку' 'chart'' и вызвать 'chart.pack();'. Тогда это должно сработать. –
Извлечь картину из метода краски. Создайте пользовательский компонент, простирающийся от JPanel, поместите код краски в свой метод paintComponent. Добавьте этот компонент к тому, что вы хотите ... – MadProgrammer
Я предполагаю, что вы хотели бы передать изображение из одного кадра и нарисовать его в другом фрейме. Мы можем достичь этого, используя объект BufferedImage, который может быть передан – user3041058