Swing Komponenten bleiben bei Animation unsichtbar

renwal

Aktives Mitglied
Hallo!

Ich hab mal eine Frage zum Animieren in Swing. Da hab ich ja mal versucht, Animationen auf JLayeredPanes durchzuführen. Eine Weiterentwicklung davon kann mehrere Animationen gleichzeitig darstellen und arbeitet mit JPanels. Jetzt habe ich jedoch das Problem, dass bei diesen Animationen das Programm zwar "irgendwas" tut, das Panel allerdings leer bleibt.

Ich bekomme durchaus die Ausgabe, dass sich die Komponenten an der richtigen Stelle befinden, aber auf dem Bildschirm tut sich halt nichts.

Es wäre super, wenn sich jemand mal den Code anschauen könnte und mich ggf. auf den Fehler hinweisen könnte! :)

[EDIT]Ich habe gerade mal das Layout gewechselt. Im null-Layout bleibt das Panel leer (obwohl ich auch damit schon erfolgreich animiert habe), im FlowLayout geht es. Nur zerstört der LayoutManager dan natürlich die Animation, weil die Komponenten dadurch andauernd wieder in ihre vom Layout vorgeschriebene Position geschoben werden, während die Animation läuft.[/EDIT]

Hier der Code:

Die aufrufende Methode:
Java:
    /**
     * Läd im UI die nächste Frage
     */
    private void showQuestion(boolean next)
    {
	btnQcOK.setEnabled(false);
	[...]

	// Neue Frage laden
	currentQuestion = (Question) questionsToAsk.next();
	// Komponenten generieren
	if (currentQuestion instanceof LueckentextQuestion)
	{
	    [...]
	}
	[...]
	else if (currentQuestion instanceof MultipleChoiceQuestion)
	{
	    new Thread()
	    {
		@Override
		public void run()
		{
		    // Ermitteln, ob die neue MultipleChoice-Frage mehrere richtige Antwortmöglichkeiten hat
		    // (dann wird statt JRadioButton JCheckBox verwendet).
		    boolean multipleCorrectAnswers = ((MultipleChoiceQuestion) currentQuestion).hasMultipleCorrectAnswers();
		    MultipleChoiceAnswer[] answers = ((MultipleChoiceQuestion) currentQuestion).getAnswers();
		    Component[] components = new Component[answers.length];
		    for (int i = 0; i < components.length; i++)
		    {
			// Komponenten generieren
			components[i] = MultipleChoiceAnswerComponentCreator.create(answers[i], multipleCorrectAnswers);
			// Komponenten in das Animations-Panel einfügen
			questionAnimationPane.add(components[i]);
		    }
		    // Animationsabfolge erzeugen
		    
		    // Gesamthöhe berechnen
		    int height = 0;
		    for (Component c : components)
		    {
			height+=c.getHeight();
		    }
		    // Wenn für einen Abstand von 10px genug Platz ist, diesen verwenden,
		    // anderenfalls passenden Abstand berechnen. D.h. der Abstand wird nicht
		    // übermäßig groß, wenn nur wenige Komponenten vorhanden sind.
		    float abstand = (height < (questionAnimationPane.getHeight() - ((components.length + 2) * 10))) ? 10 : ((float)(questionAnimationPane.getHeight() - height) / (components.length + 2));
		    
		    // Animationen berechnen
		    double bisher = 0;
		    for (Component c : components)
		    {
			// Animation berechnen
			Point2D startLocation = new Point2D.Double(-c.getWidth(), bisher+abstand);
			Point2D endLocation = new Point2D.Double((double) questionAnimationPane.getHeight() / 2, startLocation.getY());
			// Animation in die Warteschlange aufnehmen
			questionAnimationPane.addAnimationToWaitlist(c, startLocation, endLocation, 750, 100);
			// Den Ausgangswert aktualisieren
			bisher = startLocation.getY() + c.getHeight();
		    }
		    // Animationsabfolge starten und auf deren Ende warten
		    questionAnimationPane.startAnimationWaitlist(true);
		}
	    }.start();
	}
    }

componentLib.JAnimationPane.java
Java:
package componentLib;

import java.awt.Component;
import java.awt.geom.Point2D;
import java.beans.Beans;
import java.util.ArrayList;

import javax.swing.JPanel;

import threads.BlendAnimation;
import threads.ComplexAnimation;
import threads.DelayableComplexAnimation;

/**
 * Subclass von JLayeredPane für vollständige Animationen. Es können im Gegensatz zur
 * JAnimLayeredPane mehr als eine Komponente gleichkeitig sichtbar sein, sodass
 * Komponenten über den Bildschirm bewegt werden können. Jede sich auf dem Container
 * befindliche Komponente kann animiert werden, auch mehrere gleichzeitig.
 * Es besteht auch die Möglichkeit, mehrere Komponenten gleichzeitig zu animieren,
 * um z.B. Auswahlfelder mit je einer leichten Verzögerung zur vorherigen Komponente
 * einblenden zu können.
 * 
 * @author renwal
 * @version 1.1.1
 *
 */
public class JAnimationPane extends JPanel {

    private ArrayList<DelayableComplexAnimation> animationQueue = new ArrayList<DelayableComplexAnimation>();

    /**
     * 
     */
    private static final long serialVersionUID = -2482635299189180067L;

    public JAnimationPane()
    {
	super();
    }

    /**
     * Fügt eine neue Komponente zur JAnimationPane hinzu
     * 
     * @param component
     *            Die Komponente, die hinzugefügt werden soll
     * 
     * @return Die hinzugefügte Komponente (Vorgabe aus der superclass)
     * 
     */
    @Override
    public Component add(Component component)
    {
	// Überschriebene superclass-Methode für das Hinzufügen von
	// Komponenten, um dafür zu sorgen, dass Komponenten nach
	// dem Hinzufügen immer invisible sind.
	System.out.println("adding");
	final Component returnComponent = super.add(component);
	// Neue Komponenten nicht ausblenden, wenn der Visual Editor läuft,
	// damit sie noch bearbeitet werden können
	if (!Beans.isDesignTime())
	    component.setVisible(false);
	return returnComponent;
    }

    public Component add(Component component, boolean visible)
    {
	// Überschriebene superclass-Methode für das Hinzufügen von
	// Komponenten, um dafür zu sorgen, dass Komponenten nach
	// dem Hinzufügen immer invisible sind.
	final Component returnComponent = super.add(component);
	// Neue Komponenten nicht ausblenden, wenn der Visual Editor läuft,
	// damit sie noch bearbeitet werden können
	if (!Beans.isDesignTime() && !visible)
	    component.setVisible(visible);
	return returnComponent;
    }

    [...]

    public void addAnimationToWaitlist(Component c, Point2D p1, Point2D p2, int time, int delay)
    {
	// Parameter auf Korrektheit prüfen
	if (c == null)
	    throw new NullPointerException();
	System.out.println(c.getParent());
	if (!c.getParent().equals(this))
	    throw new IllegalStateException("Component is not a child of this component.");

	// TODO Die Animation wird hier auch gestartet, wenn Start und Ziel gleich sind!!

	// Neue zeitgesteuerte Animation erstellen
	DelayableComplexAnimation anim = new DelayableComplexAnimation(c, p1, p2, time, delay);
	// Objekt in die Warteliste einfügen
	animationQueue.add(anim);
    }

    public void startAnimationWaitlist(boolean wait)
    {
	if (animationQueue.size() == 0)
	    throw new IllegalStateException("No animations in waitlist.");
	if (wait)
	{
	    // Wenn auf das Ende gewartet werden soll
	    processAnimationQueue();
	}
	else
	{
	    new Thread()
	    {
		@Override
		public void run()
		{
		    processAnimationQueue();
		}
	    }.start();   
	}
    }

    private void processAnimationQueue()
    {
	for (DelayableComplexAnimation anim : animationQueue)
	{
	    anim.start();
	}
	boolean running;
	
	do
	{
	    // Erst running zurücksetzen
	    running = false;
	    // Sobald ein Timer gefunden wird, der noch läuft, weiter prüfen
	    for (DelayableComplexAnimation anim : animationQueue)
	    {
		if (anim.isRunning())
		{
		    running = true;
		    break;
		}
	    }
	    try
	    {
		Thread.sleep(50);
	    }
	    catch (InterruptedException interrupt)
	    {
		// TODO Auto-generated catch block
	    }
	    
	}while(running);
	animationQueue.clear();
    }

}

threads.DelayableComplexAnimation.java
Java:
package threads;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Point2D;

import javax.swing.Timer;

/**
 * Ermöglicht die zeitgesteuerte Ausführung von Animation mehrerer Komponenten.
 * ACHTUNG: Es handelt sich hier, mit geringfügigen Anpassungen für die TimerTask-Klasse,
 * um denselben Code, den auch threads.ComplexAnimation.java enthält! IMMER BEIDE ÄNDERN!
 * 
 * @author renwal
 * @version 1.2.1
 */
public class DelayableComplexAnimation extends Timer implements ActionListener {

    /**
     * 
     */
    private static final long serialVersionUID = 9171502232401292487L;

    // Anzahl an Millisekunden pro generiertem Bild (aktuell 40, d.h. 25fps)
    private static final int MS_PER_FRAME = 40;

    Component component;
    int time;
    int delay;
    Point2D p1;
    Point2D p2;

    /**
     * 
     * @param component
     *            Die zu animierende Komponente
     * @param p1
     *            Der Zielpunkt der Animation
     * @param p2
     *            Der Startpunkt der Animation
     * @param time
     *            Die Animationsdauer in ms
     * @param delay
     * 		  Die Verzögerung bis zum Start der Animation
     */
    public DelayableComplexAnimation(Component component, Point2D p1, Point2D p2, int time, int delay)
    {
	// Neue Instanz der Animations-Klasse erzeugen
	// TODO Erst null, dann this, denn this geht in super() nicht.
	super(time, null);
	setLogTimers(true); //DEBUG
	addActionListener(this);

	// Parameter auf Korrektheit prüfen

	if (p1.equals(p2))
	    throw new IllegalArgumentException(
	    "Start and end point must not be at the same location.");
	if (time == 0)
	    throw new IllegalArgumentException("Time must not be 0.");
	// Parameter übernehmen
	this.component = component;
	this.time = time;
	this.delay = delay;
	this.p1 = p1;
	this.p2 = p2;
    }

    @Override
    public void start()
    {
	// Vor dem Start vorbereiten
	setRepeats(false);
	setCoalesce(false);
	setInitialDelay(delay);
	super.start();
    }

    @Override
    public void actionPerformed(ActionEvent e)
    {
	new Thread()
	{
	    @Override
	    public void run()
	    {
		// Anzahl an Wiederholungen berechnen
		double steps = (double) time / MS_PER_FRAME;
		// x- und y-Schritt-Größen berechnen
		double deltaX = (p2.getX()-p1.getX())/steps;
		double deltaY = (p2.getY()-p1.getY())/steps;

		// Komponente ggf. sichtbar machen
		if(!component.isVisible())
		    component.setVisible(true);
		// Animation der Komponente ausführen
		for (int i=0; i<=steps; i++)
		{
		    // Startzeit für Zeitausgleich speichern
		    final long timeNow = System.currentTimeMillis();

		    int x = (int) (p1.getX() + i * deltaX);
		    int y = (int) (p1.getY() + i * deltaY);
		    System.out.println("frame: x->" + x + " y->" + y + " (" + this.getName() + ")");
		    
		    component.setLocation(x, y);
		    try
		    {
			// Zeitausgleich berechnen (Die vorgegebene Anzahl an ms
			// minus
			// die für das Rendern benötigte Zeit)
			final long substrSleepTime = System.currentTimeMillis()
			- timeNow;
			// Zeitausgleich, wenn die benötigte Zeit nicht länger ist
			// als die Soll-Zeit, um Animationsgeschwindigkeit konstant
			// zu halten.
			if (substrSleepTime < MS_PER_FRAME)
			    Thread.sleep(MS_PER_FRAME - substrSleepTime);
		    }
		    catch (final InterruptedException interrupt)
		    {
			break;
		    }

		}
	    }
	}.start();
    }
}

PS: Nicht über das "Complex" in ComplexAnimation wundern. Diese Animationen sind ja nicht wirklich "complex", aber es gibt auch eine noch einfachere und irgendwie musste ich sie ja unterscheiden können...

LG renwal
 
S

SlaterB

Gast
bei null-Layout-Positionsänderungen danach repaint()

bevor ich sonst schaue, ob man am Code mehr erkennen kann, warte ich erst eine Rückmeldung ab, ob noch aktuell?
 

renwal

Aktives Mitglied
Ich hab den Fehler gerade selber gefunden.

In einem anderen Projekt habe ich versucht, auf eine ähnliche Weise einen Lauftext zu realisieren. Da ich dort auch auf das Problem stieß, habe ich mir mal die Punkte ausgeben lassen, an die die Komponente geschoben wird. Theoretisch sollte das bis
Java:
x == -label.getWidth()
passieren. Die letzte Ausgabe war dann
Code:
java.awt.Point[x=0, y=0]
.

Das hat mich stutzig gemacht und ich habe festgestellt, dass eine Komponente im null-Layout keine Größe zugewiesen bekommt, d.h. preferredSize funktioniert nicht. Dann habe ich eine feste Größe per
Code:
setSize(x, y)
vergeben und siehe da - es geht.

Daraus ergibt sich die neue Frage: Wie kann man diese dynamische Größenzuweisung auch in diesem Layout umsetzen?

[EDIT]
Eine Lösung habe ich gefunden:
Java:
Font actFont = fontableText.getFont();
FontMetrics fm = label.getFontMetrics(actFont);
int textgroesse = fm.stringWidth(fontableText.getText());
label.setSize(textgroesse, label.getHeight());
[/EDIT]
 
Zuletzt bearbeitet:
S

SlaterB

Gast
berechnet getPreferredSize() nichts?
folgendes sieht bei mir gar nicht so übel aus:

Java:
public class TestGUI     extends JFrame {

    public TestGUI()     {
        setLayout(null);
        JLabel l = new JLabel("Test Test Test Test Test");
        System.out.println(l.getPreferredSize());
        l.setBounds(30, 30, 30, 30);
        l.setSize(l.getPreferredSize());
        add(l);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 400);
        setVisible(true);
    }

    public static void main(String[] args)     {
        new TestGUI();
    }

}
 

renwal

Aktives Mitglied
Und genau das ist ja das Problem.

PreferredSize ist bei der Erzeugung der Komponente 0px*0px, wenn man das null-Layout verwendet. Ich weiß ja vorher nicht, welcher Text in den Komponenten steht, die werden ja dynamisch geladen und es werden Texte aus einer Datei zugewiesen.

Damit scheitert dein Code an
Java:
l.setBounds(30, 30, 30, 30);
Das kann ich ja erst machen, nachdem ich die Größe des Textes selbst bestimmt habe und ggf. noch die Icon-Größe dazu addiert habe.
Wie ich das mache, habe ich ja bereits geschrieben. Man könnte jetzt meinen und deinen Code kombinieren, dann ginge es. Aber ist es dann nicht sinnvoller, nicht über die Bounds zu gehen, die wieder auszulesen und dann als feste Größe festzulegen, sondern direkt die feste Größe mit
Code:
setSize(x, y)
zu setzen?
 
S

SlaterB

Gast
in meinem Beispiel war von setBounds praktisch nur die ersten beiden Werte wichtig, setLocation() ginge dafür auch,

an der Stelle, wo du setSize() aufrufst, rechnest du bisher die Size selber aus,
ich schlage vor, dass du an diese Stelle
> label.setSize(label.getPreferredSize());
setzt, geht das oder nicht?
 

renwal

Aktives Mitglied
Jetzt hab' ich das Ding auch verstanden. Ich hab nicht kapiert, dass
Code:
getPreferredSize()
nicht nur den Wert zurückgibt, der in der entsprechenden Variable gespeichert ist, sondern die Größe neu berechnet. Irgendwas hab ich dann falsch gemacht, denn da war as Ergebnis immer 0px*0px. Mit deinem Code klappt es jetzt!

Danke!

LG renwal
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Komponenten von JPanel bleiben unsichtbar 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
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
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
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 7
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 2
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