Swing Jlist Größe während der Laufzeit verändern.

DefconDev

Bekanntes Mitglied
Hallo,

ich suche eine geeignete Lösung mit der ich eine JList während der Laufzeit verändern kann(y-Größe).

Ich möchte kein JScrollpane verändern sondern die Größe der JList. Soll heißen, bei jedem weiteren JList eintrag soll sich die Jlist dynamisch anpassen.

Gibt es eine gegeignete Methode bzw. über welchen Listener läuft diese Sache?
 

kaoZ

Top Contributor
du meinst du möchtest der list neue elemente hinzufügen oder willst das das Fenster und der darstellungsbereich mitwächst, wenn ja dann erklär mir bitte die logik die dahinter stecken soll ^^ ?!

Bei ersterem wäre das Model dein Ansatz, bei letzerem würde ich dein vorhaben hinterfragen.
 
Zuletzt bearbeitet:

DefconDev

Bekanntes Mitglied
Ich habe zwei Jlist in denen ich per Buttons die Einträge "hin und her schiebe". Also die beiden Jlist können die Sachen adden und wieder removen. Es ist aber so, dass bei Start der GUI noch gar keine Einträge in den Listen vorhanden sind.

Eine preferedSize habe ich eingestellt, die wird auch zu Anfang gesetzt. Nur ab einer bestimmten Menge an neuen Einträge verschwinden die Einträge aus der Sichtbarkeit der Jlist, da hilft auch nicht wenn ich das Jscrollpane größer gestalte, das bei meinen Test sowieso immer kleiner sein "muss" als die JList, damit der Scrollbalken überhaupt zu sehen ist.


EDIT: wenn es hilft kann ich gerne ein paar Fotos machen
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
eine JList , bezieht wie gesagt ihre Elemente aus einem Model

in dem Beispiel hier wird automatisch ein Model im Konstruktor der JList angelegt:

Java:
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;


public class Foo{

	public static void main(String[] args){
		
		String[] elements = 
			{
				"Item",
				"Item1",
				"Item2",
				"Item3",
				"Item4",
				"Item5",
				"Item6"
			};
		
		JPanel container = new JPanel();
		container.setPreferredSize(new Dimension(250,150));
		JList<String> list = new JList<>(elements);
		
		JScrollPane pane = new JScrollPane(list);
		pane.setPreferredSize(new Dimension(100,100));
		
		container.add(pane);
		
		JFrame f = new JFrame("example");
		f.setDefaultCloseOperation(2);
		f.setContentPane(container);
		f.pack();
		f.setLocationRelativeTo(null);
		f.setVisible(true);
	}
}

wenn du verschiedene Elemente den einzelnen Listen zuordnen willst , musst du bestenfalls ein eigenes Modell schreiben welches die Daten hält und du dieses dann einfach der JList übergibst.
 
Zuletzt bearbeitet:

DefconDev

Bekanntes Mitglied
Irgendwie reden wir einander vorbei :)

Meine JList ist in einem DefaultlistModel eingebettet.

Was ich ändern möchte ist die optische Größe der JList in meiner GUI.

setPreferredSize(new Dimension(100,100))

also die Dimension, bzw. die x&y Koordinaten.
 

kaoZ

Top Contributor
Was ich ändern möchte ist die optische Größe der JList in meiner GUI.

also doch meine befürchtung, das du letzteres realisieren willst,

erstmal ist nicht deine JList in das Model eingebettet sondern das Model ein Attribut deiner List,

und nun die Frage, ob dir bewusst ist das wenn du deine JList Optisch veränderst , und diese eine bestimmte länge erreicht hat
diese entweder
- außerhalb des Sichtbereiches des die List umgebenen Frames/Containers ist ( wenn du nicht mit einem Scrollpane arbeiten willst, wie du sagst)
- du sonst dafür sorgen müsstest das sich der JFrame der eben als Container alle Elemente umgibt, mitwächst,

das ist nicht wirklich dein Ziel oder ^^?

andernfalls,

nur mal theoretisch, müsstest du die Höhe der einzelnen Elemente der List ermitteln ( auch die die du neu Hinzufügen wollen würdest, dies müsste dann vorher passieren) , diese aufsummieren, und alle umschließenden Elemente mit neuer Höhe neu zeichnen lassen, im umkehrschluss vice versa wenn du elemente entfernen wollen würdest.
 
Zuletzt bearbeitet:

DefconDev

Bekanntes Mitglied
Sorry, das Model ist natürlich in der List eingebettet.

Mit Scrollpane arbeite ich schon, nur sobald die x/y Werte größer sind als die der JList, verschwindet der Scrollbalken. Also optisch vergrößern wie du das meinst, meinte ich auch nicht. Also es soll nichts über die GUI hinaus wachsen.

Sagen wir die JList hat eine dimension von 100(x-breit) und 400(y-hoch/tief), bei dieser Größe kann man 100 Einträge sehen wenn das Scrollpane existiert. Nur wenn ich jetzt den 101. Eintrag mache kann sich die JList nicht mehr anpassen und der Scrollbalken lässt sich nicht mehr weiter nach unten scrollen um den 101 Eintrag zu betrachten.

Unbenannt.jpg
Tool Bild 2.jpg
Tool Bild 3.jpg
Tool Bild 4.jpg

Im letzten Bild erkennt man ein bisschen, dass eigentlich noch ein Eintrag existiert der aber nicht mehr im Sichtbereich ist.
Hinzu kommt, der letzte Eintrag lässt sich mit Str-A anwählen, nur zu sehen ist der nicht mehr.
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Normalerweise ist da der einfachste weg ( zur Laufzeit ) das Model (insofern sich dieses ja geändert hat) einfach neu zu setzen :)

sprich du setzt beim klick auf den laden button einfach das Model neu, das sollte schon reichen damit sich die JList Elementlängentechnisch der list wieder anpasst.

Wenn du wirlich die JList verängern würdest würde dein ganzes Layout zerstört werden ;)
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
nope....leider isses nicht so einfach ^^


EDIT : so das hier sollte so funktionieren wie du dir das vorstellst, wenn du nun elemente zu deinem Array hinzufügst, werden diese angezeigt sobald du die liste neu lädst, da dann die JList das veränderte Model erhält, dies kann man natürlich auch automatisieren , mit einem Observer oder bedingungen.

Java:
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListModel;
import javax.swing.event.ListDataListener;


@SuppressWarnings("serial")
public class JListModelExample extends JPanel{

	public final static Dimension DEFAULT_DIM = new Dimension(200,200);
	
	public JListModelExample(){
		
		Random rdm = new Random();
		Integer[] elements = new Integer[100];
		for (int i = 0; i < elements.length; i++) {
			elements[i] = rdm.nextInt(100);
		}
		
		JList<Integer> list = new JList<>();
		
		JScrollPane pane = new JScrollPane(list);
		
		JButton btn = new JButton("Load data..");
		btn.addActionListener(new ListListener(list, elements));
		
		add(pane);
		add(btn);
	}
	
	class ListListener implements ActionListener{

		JList<Integer> list;
		Integer[] arr;
		
		public ListListener(JList<Integer> list, Integer[] arr){
			this.list = list;
			this.arr = arr;
		}
		
		@Override
		public void actionPerformed(ActionEvent e){
			list.setModel(new ListModel<Integer>(){

				@Override
				public int getSize(){
					return arr.length;
				}

				@Override
				public Integer getElementAt(int index){
					return arr[index];
				}

				@Override
				public void addListDataListener(ListDataListener l){}

				@Override
				public void removeListDataListener(ListDataListener l){}
				
			});
			
		}
		
	}
	
	public static void main(String[] args){

		JFrame f = new JFrame("example");
		f.setDefaultCloseOperation(2);
		f.setContentPane(new JListModelExample());
		f.pack();
		f.setLocationRelativeTo(null);
		f.setVisible(true);
	}
}
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Ne aber Krank geschrieben, das kommt dem aber sehr nah, und bevor ich mir den ganzen Tag RTL reinziehe :-D
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
E JList in ScrollPane auf größe bringen AWT, Swing, JavaFX & SWT 5
A Größe einer JList beeinflussen AWT, Swing, JavaFX & SWT 2
B Jlist füllen AWT, Swing, JavaFX & SWT 4
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
BananenBrötchen Swing Arraylist in jList anzeigen AWT, Swing, JavaFX & SWT 6
J Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
A Swing JList zu JTree AWT, Swing, JavaFX & SWT 11
G Eingabe in JTextField in Array speichern und in JList ausgeben AWT, Swing, JavaFX & SWT 7
cezary Choice, JComboBox oder JList AWT, Swing, JavaFX & SWT 5
J JList scrollen AWT, Swing, JavaFX & SWT 3
Neumi5694 Swing JList - Klick abfangen AWT, Swing, JavaFX & SWT 3
G Swing Swing Binding JList funktioniert nicht AWT, Swing, JavaFX & SWT 5
M Swing JList Auswahl-GUI-Konzept AWT, Swing, JavaFX & SWT 9
C JList: Bestimmte Objekte ausschließen AWT, Swing, JavaFX & SWT 1
F JList aktualisiert nicht AWT, Swing, JavaFX & SWT 24
F JList auffüllen aus Array von Instanzen AWT, Swing, JavaFX & SWT 4
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
F JList bei Windowbuilder AWT, Swing, JavaFX & SWT 8
F JList zeigt keine Einträge mehr AWT, Swing, JavaFX & SWT 1
P JList erstellen AWT, Swing, JavaFX & SWT 4
G DefaultListModel für JList AWT, Swing, JavaFX & SWT 2
P Einer JList mit eigenem ListModel einen Eintrag hinzfügen AWT, Swing, JavaFX & SWT 5
P Übergeben von ListModel an nichtparametrisierte JList AWT, Swing, JavaFX & SWT 8
M Ein Element in mehreren JList selektieren AWT, Swing, JavaFX & SWT 5
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
O Swing JList beim Klicken in der GUI erstellen AWT, Swing, JavaFX & SWT 6
C Swing JList zeigt keine neuen Einträge an AWT, Swing, JavaFX & SWT 1
B Swing Auf JList-Elemente aus einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 1
T Generische Klasse in JList über DefaultListModel AWT, Swing, JavaFX & SWT 1
T Swing WindowBuilder: JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
C Button Text in JList neue Zeile AWT, Swing, JavaFX & SWT 6
C Hilfe bei JSpinner und JList AWT, Swing, JavaFX & SWT 1
D Swing ArrayList in Jlist/ List oder Array in JList/List AWT, Swing, JavaFX & SWT 5
S JList ist leer, aber DefaultListModel hat die Daten? AWT, Swing, JavaFX & SWT 9
M JList wird angezeigt, JTable (DefaultTableModel) nicht AWT, Swing, JavaFX & SWT 7
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
Q JList Update Problem AWT, Swing, JavaFX & SWT 1
W Sichtbarer Bereich JScrollPane vs. JList AWT, Swing, JavaFX & SWT 3
N AWT Markierte Zeile jList aus mySQL DB löschen AWT, Swing, JavaFX & SWT 2
S JList repaint AWT, Swing, JavaFX & SWT 1
F Swing JTextField in JList (Funktion beibehalten) AWT, Swing, JavaFX & SWT 2
H JList AWT, Swing, JavaFX & SWT 5
B Swing Bild von Webseite herunterladen, diese dann in JList anzeigen. AWT, Swing, JavaFX & SWT 1
B Swing Dynamische JList mit Bildern AWT, Swing, JavaFX & SWT 4
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
S JList Index finden AWT, Swing, JavaFX & SWT 6
3 Swing JList-Inhalt als verschlüsselte Datei schreiben und lesen AWT, Swing, JavaFX & SWT 1
N JComponenten in JList oder doch anders? AWT, Swing, JavaFX & SWT 0
S Swing JList, ArrayList + DefaultModel AWT, Swing, JavaFX & SWT 5
B Tabelleneinträge in JList anzeigen AWT, Swing, JavaFX & SWT 5
P JList/JScroolPane Text verschieben und text wrappen AWT, Swing, JavaFX & SWT 3
D Swing JList keine Selektionsänderung bei "dragged-Maus" AWT, Swing, JavaFX & SWT 4
M JList Model filtern AWT, Swing, JavaFX & SWT 4
K Swing JList - Element richtig hinzufügen AWT, Swing, JavaFX & SWT 4
T Swing Elemente der JList überlappend darstellen AWT, Swing, JavaFX & SWT 5
P Swing JList mit Objekten - Name anzeigen AWT, Swing, JavaFX & SWT 5
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
K Mehrfachselektierungen in einer JList AWT, Swing, JavaFX & SWT 6
L Swing Component alignment innerhalb einer JList AWT, Swing, JavaFX & SWT 3
M Swing JList Listener AWT, Swing, JavaFX & SWT 20
M Accelerator zu JMenuItem des JPopupMenu einer JList AWT, Swing, JavaFX & SWT 2
S Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
M Element aus JList eines JFileChooser entfernen AWT, Swing, JavaFX & SWT 3
E selektierter Datensatz in JList als String Datentyp AWT, Swing, JavaFX & SWT 23
E selektiertes Element aus JList zurückgeben AWT, Swing, JavaFX & SWT 7
E JList /DefaultListModel mit Datenbank verbinden AWT, Swing, JavaFX & SWT 10
L SQL & Jtable o. JList AWT, Swing, JavaFX & SWT 5
K Swing JList und veränderte CellRenderer AWT, Swing, JavaFX & SWT 8
B JList + ListCellRenderer AWT, Swing, JavaFX & SWT 5
B JList -> Disabled AWT, Swing, JavaFX & SWT 6
J JList, Anzeige aktualisieren AWT, Swing, JavaFX & SWT 7
I Jlist isselectionEmpty AWT, Swing, JavaFX & SWT 4
I Jlist dynamisch aus Datenbank füllen AWT, Swing, JavaFX & SWT 14
R Swing unbegrenzte Anzahl vonEinträgen in JList AWT, Swing, JavaFX & SWT 2
MiMa Dateien aus Ordner in einer JList Ausgeben AWT, Swing, JavaFX & SWT 32
P Elemente einer JList ausgeben AWT, Swing, JavaFX & SWT 11
M JList mit 2-zeiligen Objekten füllen AWT, Swing, JavaFX & SWT 7
S JList mit Einträgen versehen schlägt fehl AWT, Swing, JavaFX & SWT 4
F Swing ArrayList in JList anzeigen und Objekte auswählen AWT, Swing, JavaFX & SWT 2
B JList zeigt Elemente nicht an AWT, Swing, JavaFX & SWT 3
S Fragen zu JList AWT, Swing, JavaFX & SWT 3
B Aktualisierung einer JList AWT, Swing, JavaFX & SWT 5
W JList valueChanges weiterleiten? AWT, Swing, JavaFX & SWT 14
D JButton-Click in JList mit Panels (auf dem der Button ist) AWT, Swing, JavaFX & SWT 6
E Jlist nur mit Klasse? AWT, Swing, JavaFX & SWT 5
D Swing JList <-> AdapterModel <-> Model AWT, Swing, JavaFX & SWT 4
1 JList - Elemente mit rechter Maustaste wählen AWT, Swing, JavaFX & SWT 6
M JList mit DefaultListModel und listener AWT, Swing, JavaFX & SWT 4
B JList nach dem Rendern sortieren AWT, Swing, JavaFX & SWT 3
T Wie ist das "Lookup-Verhalten" von JList, JCombobox änderbar? AWT, Swing, JavaFX & SWT 4
D JList items voneinander trennen AWT, Swing, JavaFX & SWT 10
E Keine Ausgabe von JList bei drücken von Button auf die Konsole AWT, Swing, JavaFX & SWT 7
M gleiches Element in JList mehrmals hintereinander auswählen AWT, Swing, JavaFX & SWT 6
T JList und Objekte AWT, Swing, JavaFX & SWT 7
M Swing JList Item in andere JList während Ausführung AWT, Swing, JavaFX & SWT 4
V JList filtern AWT, Swing, JavaFX & SWT 6
GianaSisters jList nur einmal ein Element anklicken AWT, Swing, JavaFX & SWT 3
TheWhiteShadow JList-Inhalt nach Änderung weg AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben