Swing
-
Hallo,
ich habe folgende Aufgabenstellung erhalten:Erstellen Sie einen Frame mit einem Label und darunter zwei nebeneinder angeordneten Buttons . Bei Vergrößerung des Fensters bleiben die Buttons in der Ausgangsgröße in der linken bzw. rechten unteren Ecke des Fensters (d.h. der Abstand zwischen den Buttons ist variabel), während der Label den gesamten restlichen Platz im Fenster ausfüllt. Der Text des Labels ist in der zur Verfügung stehenden Fläche zentriert (horizental wie vertikal).
Welche(n) Layout-Manager könnte man hierfür einsetzen?
Bei Klick auf den linken Button wird im Label der String ,,Hello World`` angezeigt, bei Klick auf den rechten Button wird das Programm beendet. Wenn der Benutzer das Fenster schließt, soll sich das Programm ebenfalls beenden
Das Problem ist aber:
Die Aufgaben auf diesem Aufgabenblatt sollen zunächst ohne Unterstützung durch einen GUI Designer (wie z.B. Together ) und nur durch Einsatz von Swing (d.h. nicht AWT) Kompenenten gelöst werden.
Ich habe leider von Swing keine Ahnung und AWT ist nicht erlaubt.
Kann mir jemand bei der Lösung helfen?
-
Andreas XXL schrieb:
Ich habe leider von Swing keine Ahnung und AWT ist nicht erlaubt.
Kann mir jemand bei der Lösung helfen?Klar, aber das Problem ist in erster Linie nicht Swing spezifisch. Auch bei AWT gibt es schon LayoutManager. Das solltest du dann ja auch kennen
Wo ist denn genau dein Problem? Fang doch erst mal an und melde dich wieder, wenn du was konkreteres hast.
/Dirk
-
Hallo,
also ich habe jetzt konkrete Fragen.
1.Wie kann man bei JList herrausbekommen, ob etwas vom Anwender selektiert wurde?
Vor allem muss ich die Nachricht gesendet bekommen ohne danach zu fragen.
Ich will nicht alle X Sekunden nachfragen müssen.
2.Wie kann ich ein Dialog Fenster schließen (über eigenen Button) ohne das gesamte programm zu beenden? Mir ist nur System.exit(1) eingefallen, aber das beendet ja alles!]
-
du musst einen eventhandler registrieren
dieses objekt (je nachdem) reagiert auf das jeweilige event
ich empfehle die sun seite java.sun.com oder ein tutorial
als kleinen anfang hier kopiert aus der java api doc (1.4) registrierung eines eventhandlers fuer mouse events
der MouseAdapter ist eine dummy implementierung des MouseListener's
sonst musst du alle funktionen ueberschreibenfinal JList list = new JList(dataModel); MouseListener mouseListener = new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { int index = list.locationToIndex(e.getPoint()); System.out.println("Double clicked on Item " + index); } } }; list.addMouseListener(mouseListener);
fuer weiter hilfe, such mal im internet und auf der sun seite
da findest du alles weiteregomberl
-
das mit dem schliessen findest du auch in tutorials
System.exit(0) ist wie gesagt der befehl zum beenden des ganzen programs
normalerweise muesste ein dialog.hide() reichen - wenn ich mich recht erinneremuesste aber kurz nachschauen
versuchs maluebrigens:
das meiste solltest du durch googeln oder schaun in die FAQ auch findengomberl
-
Andreas XXL schrieb:
2.Wie kann ich ein Dialog Fenster schließen (über eigenen Button) ohne das gesamte programm zu beenden? Mir ist nur System.exit(1) eingefallen, aber das beendet ja alles!
In der Dialog-Klasse das hier einfügen müsste reichen (für das schließen des Fensters mittels des Windows-Buttons zum Schließen bzw. vergleichbarem in anderen BS):
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);