Ich versuche eine Art Datenbank zu schreiben, bei der der Benutzer selbst 'Objekte' erstellen kann, die dann im Fenster angeordneten werden sollen.
Die erstellten Objekte sind JPanels, die je nach Einstellung entweder unter alle anderen bereits erstellten JPanels oder rechts neben eines der vorhandenen JPanels angeordnet werden sollen. Da das beliebig groß werden kann, soll es auch möglich sein horizontal und vertikal zu scrollen.
Als Lösung habe ich gedacht, dass ich einfach dem JFrame ein JScrollPane verpasse, worin ich dann untereinander JPanels mit GridLayout mit unbestimmter Spaltenanzahl einfüge.
Habe es bis jetzt aber nur hinbekommen, dass eine einzige Komponente im JScrollPane angezeigt wird.
Hab es erstmal so versucht:
Dann wird zwar das JPanel angezeigt und ich kann auch Scrollen, aber wie bekomme ich da nun weitere JPanels rein?
setViewportView füllt ja scheinbar den ganzen Viewport mit eben nur einer Komponente und kann somit nicht mehrere hinzufuegen..
add() anstatt setViewportView() habe ich auch schon versucht, aber da tut sich gar nichts, weder wird etwas angezeigt noch bekomme ich eine Fehlermeldung.
Dann habe ich noch versucht add() in verbindung mit dem Viewport zu benutzen:
..aber da wird auch nur ein von zwei JPanels angezeigt.
Wie man vielleicht sieht, kenne ich mich noch nicht so gut aus.
Wie bekomme ich nun (zur Laufzeit) mehrere Komponenten bzw. JPanels in ein JScrollPane?
Die erstellten Objekte sind JPanels, die je nach Einstellung entweder unter alle anderen bereits erstellten JPanels oder rechts neben eines der vorhandenen JPanels angeordnet werden sollen. Da das beliebig groß werden kann, soll es auch möglich sein horizontal und vertikal zu scrollen.
Als Lösung habe ich gedacht, dass ich einfach dem JFrame ein JScrollPane verpasse, worin ich dann untereinander JPanels mit GridLayout mit unbestimmter Spaltenanzahl einfüge.
Habe es bis jetzt aber nur hinbekommen, dass eine einzige Komponente im JScrollPane angezeigt wird.
Hab es erstmal so versucht:
Java:
import java.awt.*;
import javax.swing.*;
public class test extends JFrame {
public test(){
super("test");
setVisible(true);
setLayout(new GridLayout(1,1));
JScrollPane pScroll = new JScrollPane();
add(pScroll);
Obj oTest = new Obj("test");
oTest.visualize();
JPanel t = oTest.getVisual();
pScroll.setViewportView(t);
pack();
}
public static void main(String[] args) {
new test();
}
}
Dann wird zwar das JPanel angezeigt und ich kann auch Scrollen, aber wie bekomme ich da nun weitere JPanels rein?
setViewportView füllt ja scheinbar den ganzen Viewport mit eben nur einer Komponente und kann somit nicht mehrere hinzufuegen..
add() anstatt setViewportView() habe ich auch schon versucht, aber da tut sich gar nichts, weder wird etwas angezeigt noch bekomme ich eine Fehlermeldung.
Dann habe ich noch versucht add() in verbindung mit dem Viewport zu benutzen:
Java:
import java.awt.*;
import javax.swing.*;
public class test extends JFrame {
public test(){
super("test");
setVisible(true);
setLayout(new GridLayout(1,1));
JScrollPane pScroll = new JScrollPane();
JViewport view = pScroll.getViewport();
view.setLayout(new GridLayout(0,1));
add(pScroll);
Obj oTest = new Obj("test");
Obj oTest2 = new Obj("test2");
oTest.visualize();
oTest2.visualize();
JPanel t = oTest.getVisual();
JPanel t2 = oTest2.getVisual();
view.add(t);
view.add(t2);
pack();
}
public static void main(String[] args) {
new test();
}
}
..aber da wird auch nur ein von zwei JPanels angezeigt.
Wie man vielleicht sieht, kenne ich mich noch nicht so gut aus.
Wie bekomme ich nun (zur Laufzeit) mehrere Komponenten bzw. JPanels in ein JScrollPane?
Zuletzt bearbeitet: