Hi Leute,
ich habe ein Problem. Ich möchte in einem JFrame mehrere Diagramme darstellen lassen, die von JFreeChart erstellt wurden. JFreeChart erzeugt so genannte ChartPanels, die wiederum einen JPanel zugeordnet werden können.
Die Ausganslage in ein JFrame. Das JFrame bekommt ein BorderLayout:
Darüber hinaus wird ein JPanel erstellt, in das die ChartPanel hinzugefügt werden sollen.
Jetzt werden die Diagramme erstellt so z.B.
Wenn ich jetzt das panelMain (JPanel) dem JFrame zuweise, dass funktioniert das FlowLayout und es wird alles Bildschirmgerecht dargestellt. Jedoch nur so lange, wie alle Diagramme auf den Bildschirm passen. Sollten es bei mir z.B. mehr als 5 sein sind die letzten nur noch halb zu sehen. Scrollen um sie ganz zu sehen geht natürlich nicht.
Deshalb habe ich noch ein JScrollPane angelegt, das nur das panelMain (JPanel) bekommt und dafür sorgen soll, dass man alles sieht.
Das JScrollPane wir anschießend dem JFrame hinzugefügt
Jetzt habe ich aber das Problem, dass die Diagramme nicht mehr im FlowLayout angezeigt werden, sondern stur horizontal nebeneinander gereiht werden. Ich möchte aber, dass sie weiter im FlowLayout dargestellt werden und nur wenn dann nicht alles auf den Bildschirm passt, soll man vertikal scrollen können.
Wie kann man das realisieren?
So sieht das aus jetzt:
Danke und Grüße
ich habe ein Problem. Ich möchte in einem JFrame mehrere Diagramme darstellen lassen, die von JFreeChart erstellt wurden. JFreeChart erzeugt so genannte ChartPanels, die wiederum einen JPanel zugeordnet werden können.
Die Ausganslage in ein JFrame. Das JFrame bekommt ein BorderLayout:
Code:
this.getContentPane().setLayout(new BorderLayout());
Code:
JPanel panelMain = new JPanel();
panelMain.setLayout(new FlowLayout());
Jetzt werden die Diagramme erstellt so z.B.
Code:
final ChartPanel chartPanel1 = new ChartPanel(chart1);
chartPanel1.setPreferredSize(new java.awt.Dimension(500,
300));
this.panelMain.add(chartPanel1); //Hier werden sie dem JPanel zugeordnert.
Wenn ich jetzt das panelMain (JPanel) dem JFrame zuweise, dass funktioniert das FlowLayout und es wird alles Bildschirmgerecht dargestellt. Jedoch nur so lange, wie alle Diagramme auf den Bildschirm passen. Sollten es bei mir z.B. mehr als 5 sein sind die letzten nur noch halb zu sehen. Scrollen um sie ganz zu sehen geht natürlich nicht.
Deshalb habe ich noch ein JScrollPane angelegt, das nur das panelMain (JPanel) bekommt und dafür sorgen soll, dass man alles sieht.
Code:
spane = new JScrollPane(panelMain,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
Das JScrollPane wir anschießend dem JFrame hinzugefügt
Code:
this.getContentPane().add(spane, BorderLayout.CENTER);
Jetzt habe ich aber das Problem, dass die Diagramme nicht mehr im FlowLayout angezeigt werden, sondern stur horizontal nebeneinander gereiht werden. Ich möchte aber, dass sie weiter im FlowLayout dargestellt werden und nur wenn dann nicht alles auf den Bildschirm passt, soll man vertikal scrollen können.
Wie kann man das realisieren?
So sieht das aus jetzt:

Danke und Grüße