Swing Komponenten auf JApplet setSize

Blackhole16

Bekanntes Mitglied
Ich habe ein JApplet, auf welchem ich mit einem BorderLayout im CENTER und in EAST ein JPanel habe. Wenn ich nun im EAST auf einen Knopf drücke, soll in WEST ein weiteres JPanel kommen mit einer JScrollPane, auf der ein Bild ist. Die Größen der ersten beiden JPanels habe ich hinbekommen, indem ich sie in ein weiteres JPanel gepackt habe (keine Ahnung warum es damit ging :p)

Wenn ich jetzt aber das JPanel mit der JSrollPane hinzufügen möchte, möchte ich, dass man das Bild auch ganz sieht, was aber nicht der Fall ist, sondern man sieht von der JScrollPane sogar nur unten die Scrollknöpfe, nicht einmal den Text, der später raufkommt.

Nun also zu meiner eigentlichen Frage:
Wie kann ich die Größe von Komponenten (JPanels bzw JScrollPane auf dem JPanel) in einem Applet bestimmen?

2. Problem: Ich möchte, dass das JPanel bei erneutem Druck auf den Knoft gelöscht und neu erstellt wird, was auch eigentlich kein Problem ist mit
Java:
JApplet.remove(...);
JApplet.repaint();
JApplet.add(...);
JApplet.validate();
Aber wenn ich das nun so mache, geht dieses JPanel über den linken Rand hinaus

WARUM?

mfg
BH16
 

jgh

Top Contributor
benutzt du neben dem BorderLayout auch noch andere Layout-Manager, evtl. sogar irgendwo das null-Layout?

ansonsten kannst du die Größe der Komponenten über die Methode setPreferedSize(Dimension d) setzen.
 

Blackhole16

Bekanntes Mitglied
benutzt du neben dem BorderLayout auch noch andere Layout-Manager, evtl. sogar irgendwo das null-Layout?
das null-layout nicht, aber auch noch das BoxLayout. Ich bin mir nicht ganz sicher, ob auch das FlowLayout drin ist, glaub ich aber nicht.

ansonsten kannst du die Größe der Komponenten über die Methode setPreferedSize(Dimension d) setzen.

Und was davon muss ich jetzt setzen? Iwie ändert sich nämlich nichts, ich hab erst nur die JScrollPane, dann nur das JPanel und auhc schon beides setPreferredSize(new Dimension(500,300)) (als Beispiel) gemacht. Aber gebracht hat das iwie nichts...
Was muss ich anders machen?

mfg
BH16
 

jgh

Top Contributor
eigentlich sollte das bei der JScrollPane ausreichen...aber da du schon mehrere Komponenten ineinander verschachtelt hast, kann es manchmal ein wenig tricky werden, das gewünschte Verhalten, bzw. die Größe zu erreichen.

Ein KSKB hilft uns, damit wir dir helfen können.
 

bERt0r

Top Contributor
Überleg mal logisch: Du willst ein Bild in einem Scrollpane anzeigen. Was macht ein Scrollpane? Innerhalb des Scrollpanes steht unbegrenzt Platz zur Verfügung, über den dann gescrollt wird. Wie soll der Computer von selber wissen wie groß er das ScrollPane machen soll? Das musst du ihm mit setPreferredSize angeben. Das ScrollPane so groß wie den Komponenten im Viewport zu machen scheint nur auf den ersten Blick sinnvoll denn: Wozu ein Scrollpane wenn man sowieso alles sieht?.

Je nach Layoutmanager verhalten sich Scrollpanes anders, wenn man die preferredSize nicht setzt. Liegen sie in einem Panel (Panel hat standardmäßig FlowLayout) werden sie auf Minimalgröße zusammengequetscht, in einem BorderLayout wird horizontal, vertikal oder beides maximiert abhängig davon in welchem Bereich es geaddet wird. Im Fall von BorderLayout.West wird also die Höhe an die größe deines Applets angepasst. Kurz: du kommst ums setzen der PreferredSize nicht herum.
 
Zuletzt bearbeitet:

Blackhole16

Bekanntes Mitglied
Danke für eure schnellen Antworten.

eigentlich sollte das bei der JScrollPane ausreichen
Anfangs gings iwie nicht, aber nachdem ich das Prog umstrukturiert habe und eine Funktion in den Konstruktor eingebettet habe, läuft jetzt alles, Danke :p

Überleg mal logisch:
Das wird schwer :lol:

Du willst ein Bild in einem Scrollpane anzeigen.[usw]

Gute Überlegung. Da fühle ich mich schon wieder als könnte ich nicht von 12 bis Mittag denken ;)

Man soll das Bild sehen, aber es kommen mit Knopfdruck JLabel darauf, die größer als das Bild sind. Ich möchte halt, dass man das Bild sieht, aber für das gesammte JLabel scrollen muss.

Je nach Layoutmanager [...] Kurz: du kommst ums setzen der PreferredSize nicht herum.

Hab ich jetzt auch gemacht und nach Verschieben läuft alles *YIPPIEE* XD


Hat einer eine Idee, wie ich mein 2. Problem lösen kann?

mfg
BH16
 

jgh

Top Contributor
mmmh, wie gesagt...ein KSKB ist immer sinnvoll.
Wenn ich dich richtig verstanden habe, willst du eine Komponente entfernen und dann wieder einfügen und dabei verschiebt sich irgendwas?

hier mal ein kurzes, selbstständiges und kompilierbares Beispiel (KSKB) dass auf Knopfdruck eine JTextarea entfernt. => das die Komponente im Center den neu entstanden Platz ausfüllt, denn das ist das Default-Verhalten beim BorderLayout.
Will man dieses Verhalten nicht, gibt es mehrere Möglichkeiten dieses zu unterbinden. Eine der einfachsten ist es, sich die Dimension der zu entfernenden Komponente holen und dann eine leere Komponente mit dieser Size einzufügen.

Dafür einfach den auskommentierten Text in der actionPerformed - Methode einkommentieren...aber wahrescheinlich willst du was komplett anderes.

Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class TestApplet extends JApplet {

	JPanel p = new JPanel();
	JTextField tf = new JTextField(10);
	JButton b = new JButton("Push");

	@Override
	public void init() {
		super.init();
		setSize(400, 400);
		p.setBackground(Color.RED);

		add(p, BorderLayout.CENTER);
		add(tf, BorderLayout.WEST);
		add(b, BorderLayout.EAST);

		b.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// Dimension d = tf.getSize();
				remove(tf);
				// JPanel jP = new JPanel();
				// jP.setPreferredSize(d);
				// add(jP, BorderLayout.WEST);
				validate();
				repaint();
			}
		});
	}

}

[edit]
Java:
JApplet.remove(...);
JApplet.repaint();
JApplet.add(...);
JApplet.validate();
Wobei das imho totaler Quatsch ist. Mal abgesehen davon, dass du die Methoden in dem Quelltext auf der Klasse JApplet aufrufst, was hoffentlich nur der Verdeutlichung dienen sollte....removest du, lässt neuzeichnen, addest eine Komponente und validierst!!!
Denk doch mal weiter als von 12 bis Mittag :D -nicht ernst gemeint ;)

entfernen, adden, validieren, neuzeichnen...so sollte imho die Reihenfolge sein, dann klappt es auch mit dem Nachbarn[/edit]
 
Zuletzt bearbeitet:

Blackhole16

Bekanntes Mitglied
Problem gelöst, ich hab mir mal sowohl den Panle als auch die klasse (extends JPanel) anzeigen lassen, die auf diesem Panel liegt. Der Panel hatte neau meine Maße, aber iwie war die hidden... kp warum. Auf jeden fall habe ich einfach nur show(); gemacht und alles läuft :p

Nochmal ne Frage:
Macht es einen Unterschied, ob man die Komponenten auf das Applet odeer auf diee ContentPane einfügt?

mfg
BH16

PS: Danke für eure super Hilfe, wenns nun auch was ganz anderes war... :p
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 2
D Swing Komponenten nicht sichtbar nach Start AWT, Swing, JavaFX & SWT 12
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
BabySuna Swing Komponenten auslagern auf separate Datei AWT, Swing, JavaFX & SWT 8
B Mit ContentPane werden Komponenten angezeigt, mit SplitPane, JPanel nicht? AWT, Swing, JavaFX & SWT 6
P AWT Einzelne Komponenten zur Laufzeit austauschen? AWT, Swing, JavaFX & SWT 3
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
E Komponenten von JScrollPane werden nicht richtig ermittelt AWT, Swing, JavaFX & SWT 2
F Gebundene Eigenschaften bei Komponenten mit NetBeans verarbeiten AWT, Swing, JavaFX & SWT 3
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
dereki2000 Swing JFrame nah hinzufügen von Komponenten akualisieren. AWT, Swing, JavaFX & SWT 2
L Swing Komponenten erst nach Resize sichtbar AWT, Swing, JavaFX & SWT 2
S Swing Panel übernimmt komponenten von anderem AWT, Swing, JavaFX & SWT 7
T Reihenfolge der Komponenten im einem JFrame AWT, Swing, JavaFX & SWT 8
P Gleichmäßige Anodnung von Komponenten im migLayout AWT, Swing, JavaFX & SWT 2
DaCrazyJavaExpert Swing Komponenten genauer anordnen. AWT, Swing, JavaFX & SWT 13
DaCrazyJavaExpert Swing Komponenten in GridBagLayout werden Falsch angeordnet AWT, Swing, JavaFX & SWT 1
P Größe und Ausrichtung von Komponenten festlegen AWT, Swing, JavaFX & SWT 13
MaxG. Swing Swing Komponenten zur Laufzeit hinzufügen AWT, Swing, JavaFX & SWT 2
D Swing Komponenten Anordnung eines Panels in Verbindung eines weiteren Panels AWT, Swing, JavaFX & SWT 9
N Swing Wie Programm strukturieren? (Dynamisch Komponenten hinzufügen) AWT, Swing, JavaFX & SWT 1
Neumi5694 LookAndFeel Look & Feel nicht angezeigter Komponenten ändern AWT, Swing, JavaFX & SWT 6
D JavaFX GUI Komponenten werden langsam bei größerer Datenmenge AWT, Swing, JavaFX & SWT 6
R Komponenten von JPanel bleiben unsichtbar AWT, Swing, JavaFX & SWT 2
D JavaFX Welche Komponenten vermisst ihr? Welche wären essenziell notwendig? AWT, Swing, JavaFX & SWT 8
M Datei mit Komponenten einbinden AWT, Swing, JavaFX & SWT 7
T SWT Externer zugrif auf SWT Komponenten AWT, Swing, JavaFX & SWT 3
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
J MouseOver bei Komponenten AWT, Swing, JavaFX & SWT 9
S Größe der Komponenten, beim ändern der größe des Frames, mit ändern! AWT, Swing, JavaFX & SWT 2
D LayoutManager GUI skalieren und deren Komponenten mit Grid(Bag)Layout-Manager. AWT, Swing, JavaFX & SWT 5
G Komponenten vergrößern sich nicht trotz Layoutmanager AWT, Swing, JavaFX & SWT 24
M JavaFX Scenebuilder eigene Komponenten AWT, Swing, JavaFX & SWT 8
A Swing per JComboBox gewünschtes Attribut auswählen und Komponenten passen sich an AWT, Swing, JavaFX & SWT 7
A JavaFX Eigene Komponenten im Scene Builder AWT, Swing, JavaFX & SWT 0
Q Swing Fenster updaten - Hinzugefügte Komponenten darstellen AWT, Swing, JavaFX & SWT 3
S BoxLayout: Anordnung der Komponenten links statt zentriert AWT, Swing, JavaFX & SWT 0
Bartertown JTable - Verschiedene Komponenten in einer Spalte unterbringen AWT, Swing, JavaFX & SWT 3
U Frame zeigt keine Komponenten AWT, Swing, JavaFX & SWT 7
G Applet Applet Komponenten flackern AWT, Swing, JavaFX & SWT 10
K LayoutManager Probleme mit 2 Komponenten AWT, Swing, JavaFX & SWT 9
M Komponenten übereinander AWT, Swing, JavaFX & SWT 7
R Komponenten werden erst nach maximierung des Frames sichtbar (Linux) AWT, Swing, JavaFX & SWT 5
H Swing Getter für GUI-Komponenten AWT, Swing, JavaFX & SWT 3
B Komponenten in Fenster verdrängen sich untereinander AWT, Swing, JavaFX & SWT 6
N Komponenten übereinander AWT, Swing, JavaFX & SWT 3
S Anordnung von GUI-Komponenten mit LayouManger (Problem beim anzeigen von JTextField) AWT, Swing, JavaFX & SWT 5
M Swing Komponenten enablen? AWT, Swing, JavaFX & SWT 4
X Java Komponenten jeder Zeit hinzufügen können AWT, Swing, JavaFX & SWT 3
S View-Komponenten im Controller bekannt machen AWT, Swing, JavaFX & SWT 7
D Grafische Komponenten komplett neu aufbauen (Neukonstruktion) AWT, Swing, JavaFX & SWT 5
A AWT Komponenten in JavaFX einbetten AWT, Swing, JavaFX & SWT 9
M Swing Komponenten erscheinen beim darüberfahren? AWT, Swing, JavaFX & SWT 7
H Komponenten unmittelbar nach dem Ausführen teilweise unsichtbar AWT, Swing, JavaFX & SWT 3
K GUI in Komponenten aufteilen (MVC) AWT, Swing, JavaFX & SWT 2
W Funktionen, sowie aufruf einiger Komponenten AWT, Swing, JavaFX & SWT 4
J Alle Komponenten eines JFrames durchlaufen AWT, Swing, JavaFX & SWT 2
R Swing Komponenten bleiben bei Animation unsichtbar AWT, Swing, JavaFX & SWT 7
T Unter JPanel liegende Komponenten "totschalten" AWT, Swing, JavaFX & SWT 5
morphesus Swing Komponenten werden nicht angezeigt AWT, Swing, JavaFX & SWT 8
C Swing Reihenfolge der Initialisierung von Komponenten AWT, Swing, JavaFX & SWT 6
Asamandra LayoutManager GridBagLayout - Komponenten (mit fill?) vergrößern aber Proportionen dabei erhalten? AWT, Swing, JavaFX & SWT 3
W Bildgröße automatisch an Komponenten anpassen AWT, Swing, JavaFX & SWT 3
TheWhiteShadow Swing Komponenten organisieren AWT, Swing, JavaFX & SWT 9
S Überlappung zweier Komponenten AWT, Swing, JavaFX & SWT 12
Z größe der komponenten bestimmen AWT, Swing, JavaFX & SWT 16
C GUI-Komponenten skalieren AWT, Swing, JavaFX & SWT 10
M Seltsames Problem mit Resize eines Fensters und seiner Komponenten AWT, Swing, JavaFX & SWT 2
D Swing Komponenten verstecken AWT, Swing, JavaFX & SWT 4
X Swing Resizing der Komponenten innheralb eines Panels AWT, Swing, JavaFX & SWT 2
T Swing Font für alle Komponenten ändern AWT, Swing, JavaFX & SWT 2
S Problem mit Swing Komponenten AWT, Swing, JavaFX & SWT 11
A Swing Alle Komponenten auf JFrame ermitteln AWT, Swing, JavaFX & SWT 4
E LookAndFeel Eigene Komponenten mit Synth L&F stylen AWT, Swing, JavaFX & SWT 2
S Swing Frame und Klasse extends JPanel - Komponenten zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 18
S JButton und textfield.setText - Komponenten über-/verdecken sich AWT, Swing, JavaFX & SWT 15
M Komponenten übereinander prüfen AWT, Swing, JavaFX & SWT 3
W LayoutManager GridBag richtig nutzen - Komponenten richtig anordnen und automatisch vergrößern AWT, Swing, JavaFX & SWT 5
M Komponenten in anderer Reihenfolge anzeigen AWT, Swing, JavaFX & SWT 4
G swing Komponenten verrutschen ständig... AWT, Swing, JavaFX & SWT 6
D Mit GridBayLayout Komponenten anordnen AWT, Swing, JavaFX & SWT 6
N Window transparent, Komponenten nicht transparent AWT, Swing, JavaFX & SWT 11
R Farbänderung von Komponenten wird nicht wirksam AWT, Swing, JavaFX & SWT 7
P Swing Hierachie oder Reihenfolge von Komponenten AWT, Swing, JavaFX & SWT 5
T Sich überlappende Komponenten AWT, Swing, JavaFX & SWT 2
D Swing Probleme beim Anzeigen der einzelnen Komponenten AWT, Swing, JavaFX & SWT 16
R Swing Komponenten klein angezeigt AWT, Swing, JavaFX & SWT 10
D Swing Swing Komponenten verschieben AWT, Swing, JavaFX & SWT 7
B Komponenten nach Skalierung nicht mehr ansprechbar AWT, Swing, JavaFX & SWT 9
Kr0e AWT Komponenten in JPanel AWT, Swing, JavaFX & SWT 6
JuliaOne Komponenten innerhalb eine JScrollpane werden auch ausserhalb davon gezeichnet! AWT, Swing, JavaFX & SWT 7
xehpuk Swing Komponenten werden durch setFont() winzig AWT, Swing, JavaFX & SWT 3
O Größe von Komponenten im JFrame manuell verändern AWT, Swing, JavaFX & SWT 2
H Komponenten anwendugsweit formatieren AWT, Swing, JavaFX & SWT 6
M Swing Komponenten mit fester Größe an Fensterrand(JFrame) AWT, Swing, JavaFX & SWT 2
A Komponenten zur Laufzeit entfernen AWT, Swing, JavaFX & SWT 3
Weiti Swing Animationen - Drehung aller Komponenten auf Knopfdruck AWT, Swing, JavaFX & SWT 12
P LayoutManager Komponenten einfügen (FlowLayout, BoxLayout) AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben