www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de