Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: Java ::  schwierige Button     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
pain_md
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.01.2002
Beiträge: 238
Beitrag pain_md Mitglied 11:49:00 08.01.2003   Titel:   schwierige Button            Zitieren

hi

ich brauch mal wieder was ganz außergewöhnliches.vereinfachte erklärung:

ich habe 2 Button. wenn ich einen von beiden anklicke, soll der jeweils andere auch als gedrückt erscheinen. ich spiele grad mit so ziemlich allem rum ohne erfolg. setSelect funzt nich. wie könnte ich das realisieren ??? kann man die Button nicht irgendwie kapseln, also als ein objekt behandeln ?

und noch eine frage. insgesamt hat das prog 87 Button. ich habe schon eine aufteilung in 5 klassen, sodas ich pro klasse ca 18 Button habe. trotzdem ist das mit dem Actionlistener dann immer noch schwierig zu verwalten. 18 mal else if ist nicht gerade guter style. bisher habe ich die Actionlistener pro klasse implementiert (über das interface). wie könnte ich das vereinfachen ? am liebsten wäre mir eine eigene klasse dafür, aber 87 else if töten java.

ich hoffe das war soweit verständlich.danke im v******

pain
CengizS
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.05.2001
Beiträge: 3502
Beitrag CengizS Mitglied 12:11:00 08.01.2003   Titel:              Zitieren

Zu deiner ersten Frage weiss ich leider noch keine Antwort aber auf die zweite Frage kann ich dir nur sagen, dass es nur noch eine Möglichkeit gibt. Jeder Button bekommt ein eigenes actionPerformed. Damit hättest Du die if-else komplett ausradiert aber eben 87 kleine, anonyme Klassen.
[java]JButton btn1 = new JButton("btn1");
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent aevt) {
// Hier die Logik
}
});[/code]

Nachtrag: Habs gerade gesehen. Die Klasse JButton besitzt (direkt oder indirekt weiss ich nicht mehr) Methoden die doClick() heissen. Damit könntest Du einen Klick auf einen Button simulieren.

[ Dieser Beitrag wurde am 08.01.2003 um 11:16 Uhr von CengizS editiert. ]

_________________
Viele Grüße, Cengiz Şahin
pain_md
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.01.2002
Beiträge: 238
Beitrag pain_md Mitglied 12:27:00 08.01.2003   Titel:              Zitieren

doClick() is super, genau das wollte ich. hab jetz nur wieder diese winzige prob mit dem actionlistener. der feuert erst nachdem ich geklickt und wieder losgelassen habe.kann man da was biegen oder muss ich nen anderen Listener nehmen ?
das mit den 87 listenern hat ich auch schon erwögen.aber is das nich böse gefaket ? ich fange langsam an in OOP/Java zu denken und will mich soweit es geht an die konventionen halten. ich such halt ne möglichkeit die so gut es geht sauber is. wie wird das eigentlich bei großen projekten gemacht ? da gibts doch bestimt hunderte Elemente, wie werden die verwaltet ? ich schau mal
tausend dank erstmal, hast wieder mal viel arbeit erspart ;-)

pain
CengizS
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.05.2001
Beiträge: 3502
Beitrag CengizS Mitglied 12:35:00 08.01.2003   Titel:              Zitieren

Um eine gewisse Gleichzeitigkeit zu erreichen solltest du dir über MouseListener bzw. MouseMotionListener ein wenig was durchlesen. Damit gehts dann 100%-ig.

_________________
Viele Grüße, Cengiz Şahin
pain_md
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.01.2002
Beiträge: 238
Beitrag pain_md Mitglied 12:49:00 08.01.2003   Titel:              Zitieren

naja, das mit dem klicken vielleicht. aber beide buttons 100 % synchron wird wohl nix. bei dem doClick() kann man eine Zeit in ms für das gedrück lassen angeben. ja dummerweise steht die aber erst zur laufzeit fest, naja, so pinglich bin ich dann doch noch nicht ;-)
das mit dem MouseListener hat ich schon fast vermutet.hab mit dem leider noch nie gearbeitet, also wirds zeit ;-) dankt dir

pain
pain_md
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.01.2002
Beiträge: 238
Beitrag pain_md Mitglied 12:54:00 08.01.2003   Titel:              Zitieren

letzte frage: kann ich es irgendwie umgehen das ich alle interfaces der mouselistener implementieren muss ? danke

pain
Ingo aka Desert Hawk
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.05.2001
Beiträge: 219
Beitrag Ingo aka Desert Hawk Mitglied 13:35:00 08.01.2003   Titel:              Zitieren

wie bei den meisten Listener, bei denen viele Methoden zu implementieren sind, gibts auch für das MouseListener-Interface eine MouseAdapter-Klasse.
Davon kannst du eine Anonymeklasse :cool: erzeugen und brauchst nur die Methoden überschreiben, die du benötigst. :)

Beispiel:
C++:
button1.addMouseListener(new MouseAdapter(){
});


[ Dieser Beitrag wurde am 08.01.2003 um 12:40 Uhr von Ingo aka Desert Hawk editiert. ]

_________________
Weise Worte:
Alle Menschen sind klug:
die einen vorher, die andern nachher
pain_md
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.01.2002
Beiträge: 238
Beitrag pain_md Mitglied 14:39:00 08.01.2003   Titel:              Zitieren

dies is ja einfach.cool.danke

pain
c++.de :: Java ::  schwierige Button   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.