Implementieren der Zurück / Vorwärts-Schaltflächen in Swing

8

Ich habe eine kurze Frage.

Ich habe ein bisschen Erfahrung mit Swing und der einfachste Weg, dies zu tun, war, eine einigermaßen große GUI zu erstellen.

Als Teil der GUI möchte ich Vorwärts- und Zurück-Buttons haben. Der Ansatz, den ich versuche zu implementieren, besteht darin, Methoden zu implementieren, die das aktuelle JPanel auf einen Stack schieben und den vorherigen Wert abrufen (sei das in Vorwärts- oder Rückwärtsrichtung (also 2 Stacks)). Ich kann es aber nicht zur Arbeit bringen. Vielleicht mache ich es komplett falsch oder vielleicht kann ein Stack nicht so verwendet werden, wie ich es benutze. In jedem Fall nervt es mich wirklich. Ich denke, es gibt wahrscheinlich einfachere Möglichkeiten wie ein Kartenlayout, aber ich denke, dass dieser Ansatz funktionieren sollte und das ist so nervig.

Es mag erwähnenswert sein, dass ich eine JFrame "Basisklasse" benutze und das zentrale JPanel abhängig vom Bildschirm ändere. Die Navigationsleiste ist jedoch als Teil der "Basisklasse" doch konstant.

Der Code dieser "Basisklasse":

%Vor%     
stephenfin 13.04.2011, 20:02
quelle

3 Antworten

15

Hier ein Beispiel mit CardLayout .

>

%Vor%     
trashgod 13.04.2011, 21:24
quelle
7
  

Die Idee, alles, was ich wiederverwende, zu machen, ist gut. Pity Swing hatte diese Funktionalität jedoch nicht eingebaut

Sehen Sie sich Kartenlayout-Aktionen an, die möglicherweise versuchen, das Kartenlayout zu erstellen ein wenig einfacher für so etwas zu verwenden.

    
camickr 14.04.2011 00:02
quelle
0

Die Art, wie ich es normalerweise mache, ist wie folgt:

  1. Ich habe eine StepManager-Klasse (schreibe sie einmal, benutze sie für immer), die alle mit den Schritten verbundenen Logik behandelt. Es hat Methoden wie next (), previous (), reset (), isFirst () und isLast ().

  2. Ich habe dann die Schaltflächen "Next" und "Previous" mit den entsprechenden Aktionen (oder was auch immer Sie wählen, um auf Benutzerinteraktion zu achten).

  3. Der Code für die Schaltfläche 'Weiter' ruft stepManager.next () auf, um den Index für den nächsten Schritt abzurufen. Dann (wenn ich den nächsten Schritt habe) rufe ich einfach (eine andere Methode) showStep (int index) auf, um die tatsächliche Schrittbenutzeroberfläche anzuzeigen, die dem aktuellen Schrittindex entspricht.

Jeder Schritt ist ein separates JPanel (Step01, Step02, Step03 ...).

%Vor%     
sbrattla 13.04.2011 20:21
quelle

Tags und Links