matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenJavaJava Programm
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "Java" - Java Programm
Java Programm < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Java Programm: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:22 Mi 02.07.2008
Autor: SusaSch

Hallöle

Ich bin gerade dabei ein Programm mit Java zu schreiben und bin dabei auf ein paar Probleme gestoßen(Ich benutze Eclipse).
Undzwar habe ich mehrere Oberflächen. Ich frage mich nun, ob es möglich ist Daten die auf einer Oberfläche vom Benutzer eingegeben werden auf eine andere Oerfläche übertragen kann. Also z.b., wenn der benutzer in einer oberfläche eine kundennummer eingibt, diese in einem textfeld auf der anderen Oberfläche erscheint.
Zum anderen schwebt mir eine oberfläche vor zum löschen von daten, bei der wenn man auf den lösch button drückt eine andere Oberfläche aufgeht, in der nochmal nachgefragt wird, ob man sich wirklich sicher ist. Dabei ist mir wichtig, dass die hauptoberfläche mitbekommt, was welcher button (Ja oder nein) gedrückt wird, damit sie z.B. textfelder usw wieder auf Anfangswerte setzt. Aber wie geht das, das die Oberflächen so miteinander kommunizieren können? BZw geht das überhaupt?

LG Susi

        
Bezug
Java Programm: Antwort
Status: (Antwort) fertig Status 
Datum: 06:56 Do 03.07.2008
Autor: Martin243

Hallo,

so etwas, was du anstrebst, ist kein Problem. Du erzeugst in deinem Programm z.B. zwei JFrames, in denen du jeweils deine Bedienelemente unterbringst. Im ersten könntest du z.B. ein JTextField platzieren und es mit einem passenden ActionListener versehen. Wenn du nun dort etwas eintippst, reagiert automatisch der von dir eingestellte Listener und führt beispielweise Aktionen aus, die Elemente im zweiten JFrame beeinflussen.
Du kannst mit dem einfachsten Beispiel anfangen: Zwei JFrames mit je einem Button, der jeweils das andere JFrame schließt.
Ich weiß nicht, wie weit du mit der Programmierung bist, aber du solltest dich auf jeden Fall mit Swing (also JFrame, JPanel, ...) und dem Listener-Konzept in Java beschäftigen.


Gruß
Martin

Bezug
                
Bezug
Java Programm: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:11 Do 03.07.2008
Autor: SusaSch

Hey
Ja das was du meinst ist ja kein Problem. Ich benutze Eclipse und da kann man seine Oberflächeb einfach so zusammensetzen. Meine 2 Oberflächen haben bereits Buttons und Textfelder usw. Nun möchte ich aber, das ich wenn ich auf den Button löschen drücke eine neue Oberfläche öffnet mit einem ja oder nein button > Soweit habe ich das bereits. Wenn der Benutzer jetzt aber z.b. ja  drückt soll sich nicht nur das kleine fenster wieder schließen(was kein problem wäre), sonder das große fenster auch die textfelder wieder auf die anfangswerte setzt(z.b. Hier Name eingeben). Mein Problem ist es, wie ich der Hauptoberfläche vermitteln kann welcher Button auf der kleinen Oberfläche gedrückt wurde...

Und wie kann ich das realisieren? Also z.b., wenn der benutzer in einer oberfläche eine kundennummer eingibt, diese in einem textfeld auf der anderen Oberfläche erscheint.

Hab aber AWT und nicht Swing benutzt.

Vielen dank schonmal


LG Susi

Bezug
                        
Bezug
Java Programm: Antwort
Status: (Antwort) fertig Status 
Datum: 20:29 Do 03.07.2008
Autor: piet.t

Hallo,

Swing kenne ich inzwischen einigermaßen, AWT deutlich weniger und mit GUI-Buildern hatte ich noch gar nix am Hut, aber vielleicht kann ich ja doch ein paar Hinweise unterbringen...

> Nun möchte ich aber, das ich wenn ich
> auf den Button löschen drücke eine neue Oberfläche öffnet
> mit einem ja oder nein button
> Soweit habe ich das
> bereits. Wenn der Benutzer jetzt aber z.b. ja  drückt soll
> sich nicht nur das kleine fenster wieder schließen(was kein
> problem wäre), sonder das große fenster auch die textfelder
> wieder auf die anfangswerte setzt(z.b. Hier Name eingeben).
> Mein Problem ist es, wie ich der Hauptoberfläche vermitteln
> kann welcher Button auf der kleinen Oberfläche gedrückt
> wurde...

Unter Swing völlig problemlos: man lässt via JOptionPane.showConfirmDialog(...) einen Bestätigungsdialog ausgeben und der Rückgabewert der Funktion sagt, welchen Button der Benutzer gedrückt hat. Allerdings blockiert die Anwendung, bis der Benutzer einen Button gedrückt hat, aber das ist in diesem Fall vielleicht sogar besser so.
Mit AWT erfordert das deutlich mehr Handarbeit. Erstmal das Fenster und die Buttons extra zusammenbasteln - aber das hast Du ja schon. Dann solltest Du einen ActionListener schreiben, der sich beim "löschen"-Button registriert und der irgend eine Möglichkeit hat, dem Hauptfenster mitzuteieln, dass es alle Felder löschen soll -im Idealfall hast Du irgendwo in Deiner Anwendung eine Methode alleFelderLoeschen() und die kannst Du dann in der actionPerformed()-Methode Deines Listeners aufrufen.

>  
> Und wie kann ich das realisieren? Also z.b., wenn der
> benutzer in einer oberfläche eine kundennummer eingibt,
> diese in einem textfeld auf der anderen Oberfläche
> erscheint.

Auch hier brauchst Du wieder einen entsprechenden Listener, der am besten beide Felder "kennt". Weil Du wahrscheinlich nicht simultan zur Eingabe die Feldinhalte übertragen willst ist auch hier wahrscheinlich wieder ein Knopf im Spiel bei dem sich dieser Listener registrieren muss. Und in actionPerformed() muss dieser dann eben den Inhalt aus dem einen Feld auslesen und in das andere übertragen.

Bei dieser ganzen "Verdrahtung" der einzelnen Komponenten ist leider immer eine Menge Handarbeit angesagt, da  die GUI-Builder hier leider nur wenig unterstützung anbieten können. Wie Du im Detail am besten vorgehst kann ich jetzt leider nicht sagen, denn das hängt stark davon ab, was der GUI-Builder für Code generiert. Übrigens: welchen verwendest Du eigentlich, denn Eclipse bringt ja von Haus aus keinen mit, das ist also irgend ein Plugin im Spiel....

Gruß

piet

Bezug
                                
Bezug
Java Programm: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:34 Do 03.07.2008
Autor: SusaSch

Hey

Wo kann ich denn schauen was ich da benutze in eclipse > wie das heißt?

ölg Susi

Bezug
                                        
Bezug
Java Programm: Antwort
Status: (Antwort) fertig Status 
Datum: 18:06 Fr 04.07.2008
Autor: piet.t

Hallo,

hmm, unter Help>About Eclipse SDK gibt es die Punkte "Feature Details" und "Plugin-Details", wo alle installierten Erweiterungen aufgelistet sind. Da ist sicher auch der GUI-Builder dabei, allerdings wird es wohl schwer, den in dem ganzen Gewühl zu finden.
Vielleicht ist es []einer von denen?

Gruß

piet

Bezug
                                                
Bezug
Java Programm: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 19:34 Fr 04.07.2008
Autor: SusaSch

hey
joa is wohl das: Visual Editor....

lg Susi

Bezug
                                                
Bezug
Java Programm: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 16:33 Sa 05.07.2008
Autor: SusaSch

Hallo

Hab schon wieder einen neue frage. Das andere Problem hab ich jetzt soweit gelöst. Gibt es irgendeine möglichkeit einen actionlistener(action performed) während er die gewünschten aktionen ausführt  anzuhalten. Also das man einen befehl schreibt zum anhalten und er erst wieder forfährt wenn man einen anderen schreibt?.


LG Susi

Bezug
                                                        
Bezug
Java Programm: Rückfrage
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:51 Sa 05.07.2008
Autor: piet.t


> Hallo
>  
> Gibt es irgendeine möglichkeit
> einen actionlistener(action performed) während er die
> gewünschten aktionen ausführt  anzuhalten. Also das man
> einen befehl schreibt zum anhalten und er erst wieder
> forfährt wenn man einen anderen schreibt?.
>  

Das musst Du noch etwas genauer erklären....
Nachdem ein ActionEvent geflogen kommt machst Du erst einmal einen Teil der Arbeit, dann willst Du warten. Wann soll die Programmausführung denn weitergehen? Nach einer bestimten Zeit? Oder nachdem in einem anderen Thread irgend etwas anderes passiert?
Ersteres ist ziemlich simpel: einfach Thread.sleep(xxx) aufrufen, wobei xxx die Anzahl der Millisekunden bezeichnet, die der Thread warten soll. Achtung: wenn Du das im Event-Dispatch-Thread machst, dann friert für diesen Zeitraum die komplette Anwendung ein.
Möchtest Du die zweite Alternative, dann musst Du natürlich entsprechende parallele Threads gestartet haben (denn so lange ein Thread wartet werden in ihm natürlich keine anderen Befehle mehr ausgeführt) und kannst diese dann z.B. mittels wait() und notify() verknüpfen.

Oder willst Du an dieser Stelle auf eine bestimmte Benutzeraktion warten? Dann würde ich die actionPerformed()-Methode an dieser Stelle enden lassen und den Rest der Arbeit aus dem Listener, der auf diese Benutzer-Reaktion wartet erledigen lassen.

Was soll es also sein?

Gruß

piet

Bezug
                                                                
Bezug
Java Programm: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:55 Sa 05.07.2008
Autor: SusaSch

hallöle

Joa also er soll theoretisch auf eine benutzeraktion  (knopfdruck) auf einer anderen Oberfläche warten ....
Ist es dann besser das den listener von der anderen Oberfläche machen zu lassen?


Lg Susi

Bezug
                                                                        
Bezug
Java Programm: Antwort
Status: (Antwort) fertig Status 
Datum: 18:48 Sa 05.07.2008
Autor: piet.t

Hallo,

>  
> Joa also er soll theoretisch auf eine benutzeraktion  
> (knopfdruck) auf einer anderen Oberfläche warten ....
>  Ist es dann besser das den listener von der anderen
> Oberfläche machen zu lassen?
>  

Ein ganz klares Ja! Es ist ja so, dass die actionPerformed()-Methode des ersten Listeners vom Event-Dispatch-Thread aufgerufen wird, und wenn man in dieser Methode den Kotnrollfluss anhält (via wait() oder sleep()), dann steht die gesamte Oberfläche und der Benutzer kann gar nicht mehr auf einen Knopf drücken (bzw. klicken kann er schon, nur merkt das die Anwendung nicht  mehr). D.h. wenn man wirklich innerhalb einer Methode warten will, dann muss diese in einem separaten hread gestartet werden. Weil das aber für den Anfang in der Regel zu kompliziert ist ist es wohl besser, pro Ereignis nur die Aufgaben auszuführen, die auch wirklich direkt nach diesem Ereignis kommen sollen. Alles, was nach einem weiteren Ereignis (also dem weiteren Knopfdruck) erfolgen soll wird dann erst von einem Listener auf dieses Ereignis angestoßen.


Gruß

piet

Bezug
                                                                                
Bezug
Java Programm: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 18:56 Sa 05.07.2008
Autor: SusaSch

oki Danke :).

Bezug
                                                        
Bezug
Java Programm: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:29 Do 10.07.2008
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]