Swing setPreferredSize zeigt keine Änderung

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
Hi, bei Knopfdruck ändere ich die preferredSize von ein paar Panels, die in meinem Frame liegen. Ich kriege es aber einfach nicht hin dass man die Änderung sofort sieht. Es passiert nämlich zunächst nix, und erst wenn ich die Inhalte verändere passt sich auch die Größe an. Ich hab nun schon alle möglichen Variationen von pack(), validate(), revalidate(), repaint() probiert... Bisher ohne Erfolg. Wer kann helfen?

Ich hab hier ein KSKB gemacht, die Stelle mit dem Problem befindet sich im ItemListener der "boxSize".

Vielen Dank

Java:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;

public class KSKB extends JFrame {

	class MyPanel extends JPanel {
		public MyPanel() {
			setPreferredSize(new Dimension(6 * 50, 12 * 50));
			setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
		}
	}

	public static void main(String[] args) {
		final KSKB window = new KSKB();
		EventQueue.invokeLater(new Runnable() {
			@Override
			public void run() {
				window.setVisible(true);
			}
		});
	}

	private List<JPanel> panels = new ArrayList<JPanel>();
	private JPanel dynamicContent = new JPanel(new FlowLayout());

	public KSKB() {

		setResizable(false);
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		panels.add(new MyPanel());
		panels.add(new MyPanel());

		final JComboBox boxPlayers = new JComboBox(new Object[] { 2, 3, 4, 5 });
		boxPlayers.addItemListener(new ItemListener() {
			@Override
			public void itemStateChanged(ItemEvent e) {
				int wishNum = (Integer) boxPlayers.getSelectedItem();
				while (panels.size() > wishNum) {
					panels.remove(panels.size() - 1);
				}
				while (panels.size() < wishNum) {
					panels.add(new MyPanel());
				}
				rebuildDynamicContent();
			}
		});

		final JComboBox boxSize = new JComboBox(new Object[] { 20, 30, 40, 50 });
		boxSize.setSelectedItem(50);
		boxPlayers.addItemListener(new ItemListener() {
			@Override
			public void itemStateChanged(ItemEvent e) {
				int size = (Integer) boxSize.getSelectedItem();
				Dimension d = new Dimension(size * 6, size * 12);
				for (JPanel p : panels) {
					p.setPreferredSize(d);
				}
				pack();
			}
		});

		// add components
		JPanel btnPanel = new JPanel(new FlowLayout());
		btnPanel.add(boxSize);
		btnPanel.add(boxPlayers);
		setLayout(new BorderLayout());
		add(btnPanel, BorderLayout.NORTH);
		add(dynamicContent, BorderLayout.CENTER);

		// initialize content
		rebuildDynamicContent();
	}

	private void rebuildDynamicContent() {
		dynamicContent.removeAll();
		for (final JPanel p : panels) {
			JPanel pPanel = new JPanel(new BorderLayout());
			JPanel btnPanel = new JPanel(new FlowLayout());
			JButton keySettings = new JButton("Key Settings");
			btnPanel.add(keySettings);
			pPanel.add(btnPanel, BorderLayout.SOUTH);
			pPanel.add(p, BorderLayout.CENTER);
			dynamicContent.add(pPanel);
		}
		pack();
		setLocationRelativeTo(null);
	}
}
 

Marco13

Top Contributor
Im Beispiel wird der ItemListener wohl zu "boxPlayers" geaddet, sollte aber zum "boxSize". Vermutlich. Wenn das sann so ist, sollte statt dess "pack()" dort ein
dynamicContent.revalidate();
eigentlich den gewünschten Effekt haben.
 

hdi

Top Contributor
Ach gott :oops: Danke.. sowas passiert mir in letzter Zeit iwie häufiger :bahnhof:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Swing JFreeChart Crosshair Label - setPreferredSize oder ähnliches, aber wo ? AWT, Swing, JavaFX & SWT 1
M setPreferredSize funktioniert nicht? AWT, Swing, JavaFX & SWT 7
R setPreferredSize - nur in einer Richtung setzen? AWT, Swing, JavaFX & SWT 8
B JButton setPreferredSize() klappt nicht AWT, Swing, JavaFX & SWT 6
hdi setPreferredSize will nicht AWT, Swing, JavaFX & SWT 4
hdi JPanel setPreferredSize < als tatsächliche Grösse AWT, Swing, JavaFX & SWT 2
S JPanel setPreferredSize AWT, Swing, JavaFX & SWT 8
A Problem mit setPreferredSize() AWT, Swing, JavaFX & SWT 3
F setPreferredSize() nur mit Layout.layoutContainer()? AWT, Swing, JavaFX & SWT 2
D setPreferredSize(), setMaximumSize() ohne Funktion? AWT, Swing, JavaFX & SWT 4
G JOptionPane zeigt nicht an was ich will AWT, Swing, JavaFX & SWT 2
S JavaFX WebView zeigt bestimmte Websites nicht an AWT, Swing, JavaFX & SWT 2
N imageIcon zeigt kein Bild an AWT, Swing, JavaFX & SWT 5
S JavaFX WebView zeigt keine Animation AWT, Swing, JavaFX & SWT 5
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
karlmasutra JavaFX ListView zeigt Einträge nicht an AWT, Swing, JavaFX & SWT 11
L JPanel zeigt keinen Inhalt AWT, Swing, JavaFX & SWT 1
C FileChooser Save-Dialog zeigt Files nicht an AWT, Swing, JavaFX & SWT 3
F JFrame zeigt nicht alle Elemente auf anhieb an AWT, Swing, JavaFX & SWT 4
F JList zeigt keine Einträge mehr AWT, Swing, JavaFX & SWT 1
C Swing JList zeigt keine neuen Einträge an AWT, Swing, JavaFX & SWT 1
A Swing JPanel zeigt Buttons nicht an AWT, Swing, JavaFX & SWT 4
N GUI zeigt alles klein an. AWT, Swing, JavaFX & SWT 7
Tausendsassa Frame öffnet aber zeigt keinen Inhalt... AWT, Swing, JavaFX & SWT 10
L Ausgabe in JEditorPane mittels HTMLEditorKit zeigt auf bestimmten Systemen falsche Zeichen AWT, Swing, JavaFX & SWT 1
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
K JavaFX TableViewer zeigt nichts an !! AWT, Swing, JavaFX & SWT 1
E Tabelle zeigt nicht neuste Datenbankeinträge an AWT, Swing, JavaFX & SWT 5
U Label zeigt nicht überall HTML Zeichen AWT, Swing, JavaFX & SWT 3
U Frame zeigt keine Komponenten AWT, Swing, JavaFX & SWT 7
H RCP(SWT) Browser-Widget zeigt keine locale HTML-Dateien an AWT, Swing, JavaFX & SWT 1
W Swing Ausführung einer .jar zeigt keine Reaktion AWT, Swing, JavaFX & SWT 4
A Swing Vokabeltrainer zeigt in einfacher Ausführung nichts an AWT, Swing, JavaFX & SWT 5
S JLabel zeigt ImageIcon nicht AWT, Swing, JavaFX & SWT 13
K JDialog zeigt Components nicht an AWT, Swing, JavaFX & SWT 3
P Swing Dialog zeigt keinen Inhalt in Verbindung mit JFrame AWT, Swing, JavaFX & SWT 18
O JTable zeigt die alte Daten wieder AWT, Swing, JavaFX & SWT 23
H JTable zeigt keine Daten an AWT, Swing, JavaFX & SWT 5
Nicklas2751 Table View zeigt keinen Inhalt nur leere Zeilen AWT, Swing, JavaFX & SWT 2
A Swing JFilechooser zeigt verzeichnisse nicht an AWT, Swing, JavaFX & SWT 2
F GroupableTableHeader zeigt nur eine Zeile AWT, Swing, JavaFX & SWT 4
B JList zeigt Elemente nicht an AWT, Swing, JavaFX & SWT 3
R Textarea zeigt Text nicht an AWT, Swing, JavaFX & SWT 5
0 JFrame zeigt Inhalt erst nach vergrößern an AWT, Swing, JavaFX & SWT 3
H TextArea zeigt kein Text an AWT, Swing, JavaFX & SWT 6
NR_EIGHT Swing JButton zeigt Icons nicht an AWT, Swing, JavaFX & SWT 3
A Swing JScrollPane zeigt keinerlei Inhalt an AWT, Swing, JavaFX & SWT 2
3 Applet Applet zeigt nur weiße Fläche AWT, Swing, JavaFX & SWT 15
C Swing JTable zeigt in jeder Zelle einer Reihe denselben Inhalt AWT, Swing, JavaFX & SWT 2
C Swing JTextPane zeigt HTML-Text aus Variable nicht an :( AWT, Swing, JavaFX & SWT 3
H JList zeigt die Daten aus dem Array nicht an! AWT, Swing, JavaFX & SWT 13
E Swing JComboBox als CellEditor in JTable zeigt Elemente nicht sofort an AWT, Swing, JavaFX & SWT 5
F Applet zeigt Bilder nicht an AWT, Swing, JavaFX & SWT 5
J Swing JPanel mit Hintergrund zeigt componente nicht AWT, Swing, JavaFX & SWT 6
B JScrollbarPane zeigt keine scrollbars AWT, Swing, JavaFX & SWT 2
U JComboBox zeigt den Aufklapppfeil nicht mehr an AWT, Swing, JavaFX & SWT 7
L Swing JDialog zeigt keinen Inhalt an AWT, Swing, JavaFX & SWT 5
C JTextArea zeigt keine Scrollbalken AWT, Swing, JavaFX & SWT 18
K JDialog zeigt keine Komponenten wenn es modal ist AWT, Swing, JavaFX & SWT 2
D JScrollPane zeigt keinen Inhalt AWT, Swing, JavaFX & SWT 2
S Seltsam: SWT Table zeigt keine Scrollbar an AWT, Swing, JavaFX & SWT 12
G JTable zeigt keine Spaltenheader AWT, Swing, JavaFX & SWT 7
G Textarea zeigt Text erst am Schluss an AWT, Swing, JavaFX & SWT 2
F JScrollPane mit JPanel drinne zeigt keine Scroll-Leisten AWT, Swing, JavaFX & SWT 7
S JComboBox zeigt beim 1. öffnen nur 2 Elemente ? AWT, Swing, JavaFX & SWT 9
G flow layout zeigt die komponenten nicht richtig an AWT, Swing, JavaFX & SWT 5
C Jar Datei ist ausführbar aber zeigt keine icon's an AWT, Swing, JavaFX & SWT 18
N JTable zeigt ColumnHeaders nicht an AWT, Swing, JavaFX & SWT 2
B JFrame nach Start leer, größer ziehen zeigt Inhalt an AWT, Swing, JavaFX & SWT 2
M JList zeigt nicht alle Elemente AWT, Swing, JavaFX & SWT 4
J JEditorPane zeigt nicht alles AWT, Swing, JavaFX & SWT 2
I JFileChooser: Zeigt keine Eingabefeld AWT, Swing, JavaFX & SWT 2
M JTable zeigt keine Scrollbars bei JScrollpaneeinbettung AWT, Swing, JavaFX & SWT 2
R Swing zeigt JButton und JTextfield nicht an? AWT, Swing, JavaFX & SWT 2
M JTable zeigt daten nicht aktuell an AWT, Swing, JavaFX & SWT 4
S ScrollPane zeigt scrollbalken nicht an AWT, Swing, JavaFX & SWT 12
Icewind Jlist zeigt neue elemente im model nicht sofort an AWT, Swing, JavaFX & SWT 3
Icewind JTable zeigt neue elemente im model nicht sofort an AWT, Swing, JavaFX & SWT 3
P JTextPane ALIGN_JUSTIFIED zeigt den Text zentriert an? AWT, Swing, JavaFX & SWT 8
J Tabelle zeigt kein Header AWT, Swing, JavaFX & SWT 5
D JTable zeigt Titel nicht an AWT, Swing, JavaFX & SWT 2
M JTabbedPane zeigt alle Panels übereinander an :( AWT, Swing, JavaFX & SWT 8
S TextArea zeigt String nicht richtig an AWT, Swing, JavaFX & SWT 4
M JScrollPane zeigt einfach keinen ScrollBar AWT, Swing, JavaFX & SWT 2
ExceptionOfExpectation JMenu, setMnemonic(Char k) bringt keine Wirkung AWT, Swing, JavaFX & SWT 8
V JavaFX Bild leer und keine Fehlermeldung AWT, Swing, JavaFX & SWT 21
ruutaiokwu SWT "Google Window Builder" tut keine jar's ins Projekt rein bei SWT-Projekt AWT, Swing, JavaFX & SWT 22
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
L Java FX Keine Anzeige Im Tableview AWT, Swing, JavaFX & SWT 4
richis-fragen JTree +/- verschwidet wenn Knoten keine Kinder hat... AWT, Swing, JavaFX & SWT 6
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
N Swing JFormattedTextField keine Werte nach Formatzuweisung AWT, Swing, JavaFX & SWT 0
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
D Swing keine JLabel-Aktualisierung bei "externem" Aufruf durch Helferklasse AWT, Swing, JavaFX & SWT 10
D Swing Warum erhalte ich keine Ausgabe? Funktioniert der equals-vergleich in actionPeformed nicht richtig? AWT, Swing, JavaFX & SWT 3
K Swing Keine Reaktion auf Tastatureingaben bei mehreren Buttons??? AWT, Swing, JavaFX & SWT 4
gamebreiti auf usereingabe warten mit GUI(nur Labels, Buttons etc. keine Texteingaben) AWT, Swing, JavaFX & SWT 3
P Swing JTable keine Markierung nach Button klick AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben