Card Layout

_fabi

Aktives Mitglied
Hallo!

Ich habe ein JApplet geschrieben, in dem ich gerne unterschiedliche Textfelder, Panels, etc. einbinden möchte. Bisher habe ich das über
Java:
		cards= new JPanel(new CardLayout());
		cards.add(card1, "1");
		cards.add(card2, "2");
		cards.add(card3, "3");

gelöst, aber jetzt würde ich gerne Slider auch mit einbinden. Dabei sollen teilweise die selben Slider angezeigt werden, aber auch unterschiedliche (sprich: card1 (Slider 1, 2) card 2 (Slider 1, 2, 3) card 3 (Slider 1, 3) ). Da ich aber einen Slider nur einem JPanel zu weisen kann, würde ich jetzt z.B. für jede Karte einen Slider 1 erstellen und einfach über den ActionListener die selbe Variable ändern lassen. Weil mir das aber etwas umständlich erscheint, wollte ich euch fragen, ob es auch eine elegantere Lösung dafür gibt.

Ich hoffe ich habe mich verständlich ausgedrückt,
vielen Dank für eure Zeit,

fabi
 
der Code zum Erstellen des Sliders + ActionListeners sollte nur einmal existierten,
entweder in einer gemeinsamen Basisklasse oder einer gemeinsamen dritten Controllerklasse oder notfalls irgendwo statisch,
sogar eine extra Miniklasse XySlider wäre besser als Codewiederholung
 
wenn im ActionListener jetzt schon nur ein Aufruf steht, was kann dann MVC bei drei verschiedenen Vorkommen in der GUI leisten?
(abgesehen davon dem Slider ein Model zuzuweisen, was aber normaler Standard ist, ohne Pattern 😉 )
 
wenn im ActionListener jetzt schon nur ein Aufruf steht, was kann dann MVC bei drei verschiedenen Vorkommen in der GUI leisten?
(abgesehen davon dem Slider ein Model zuzuweisen, was aber normaler Standard ist, ohne Pattern 😉 )
Naja, für die Slider 1 auf allen drei Panels dasselbe Model zu verwenden ist ja schon der Model - View Anteil. Ein gemeinsamer ActionListener wäre dann ja der Controller Anteil.
Wollte damit nicht sagen, dass man das alles neu erfinden muss, die Standard API bietet ja schon einiges.
Mit einem Model zu arbeiten mag ja Standard sein, ist aber nicht immer gängige Praxis ;-)
 
Ich hab da mal etwas rumprobiert, aber bin auf keinen grünen Zweig gekommen. Deshalb dachte ich mir, ich kann den Slider ja immer angezeigt lassen, nur wenn card '1' und card '3' aktiv sind, dann kann ich den Slider vll. unbedienbar machen. Gibt es so eine Funktion (wie jetzt z.B. setEditable(false); für Textfelder) für Slider auch? Ich hab mal glaube ich wo gesehen, dass der Slider etwas verblasst und unbedienbar war, aber auf
Uses of Class javax.swing.JSlider (Java 2 Platform SE v1.4.2)
hab ich nix passendes gefunden.

Vieleicht wisst ihr ja was.

Lg und vielen Dank,

fabi
 

Zurück
Oben