Ich bin neue hier im Forum und habe wie viele hier ein kleines oder großes Problem.
Google und Forensuche waren bisher erfolglos.
Ich nutze für mein erstes GUI Projekt die NetBeans IDE unter Mac OSX mit Java 6.
Da einem die IDE bei der Erstellung einer GUI unter die Arme greift habe ich diese Möglichkeit natürlich auch genutzt.
Die GUI besteht aus einem Fenster mit drei Textfeldern und zwei Radiobuttons.
Zwei der Textfelder sollen zur Eingabe von jeweils vier Zeichen(ein Hex-Code) dienen und das dritte soll den errechneten Wert ausgeben(der Hex-Code soll in Minuten bzw. Stunden umgerechnet werden ).
Die Radiobuttons sollen je nach Aktivität die Berechnung beeinflussen (Radiobutton1-Minuten, Radiobutton2-Stunden)
Jetzt möchte ich natürlich wie von OOP gewohnt die Berechnung in eine andere Datei auslagern.
Also neue Datei(Klasse) erstellt und die Berechnung als Methode rein gepackt, zusätzlich noch eine get Methode die mir den errechneten Wert zurück gibt.
Jetzt zum eigentlichen Problem, ich möchte beim ausführen der Programms den Hex-Code eingeben und bereits währen der Eingabe die Berechnung durchführen und ausgeben.
Dazu habe ich mir mit der IDE ein Event für das Textfeld erstellen lassen (CaretUpdate), nun möchte ich gerne von dort aus in der Klasse Berechnung die Methode zur Berechnung aufrufen.
Meine bisherigen Versuche an dieser Stelle die Berechnung durchzuführen blieben ohne Erfolg.
Wenn ich die Berechnung mit in die GUI-Klasse schreibe funktioniert die Anwendung bereits aber das wäre meiner Meinung nach nicht OOP.
Ich hoffe, das ich nicht schon hier einen groben Fehler gemacht habe und das ihr mir einen kleinen Tipp geben könnt wie ich das realisieren kann.
Ja du musst aufpassen, dass du die korrekte Referenz deiner GUI an deine zweite "Datei" aka Klasse schickst. Denn wenn hier der Listener falsch registriert wird, z.B. an ein GUI Element, dass aber garnicht angezeigt wird, dann kannst du hier auch auf keine Events zurückgreifen. Dann musst du aufpassen, dass du dich im korrekten Threat befindest, den nur der Swing-Worker Threat kann in der GUI änderungen korrekt durchführen.
Hm... so ganz hab ich das leider noch nicht Verstanden.
Meine Kenntnisse was GUI angeht sind leider noch sehr begrenzt und beziehen sich bisher nur auf Tutorials bzw Java Grundlagen-Bücher.
An welcher Stelle bzw. wie muss ich die Referenz meiner GUI an meine zweite Klasse übergeben.
Ich habe bisher versucht in der Methode (CaretUpdate) den Wert des Textfeld´s auszulesen in einen String zu schreiben und und diesen dann bei der Objekterzeugung der Klasse Berechnung mitzugeben bzw. ihn mit einem separaten Methodenaufruf zu übergeben und danach (wieder in CaretUpdate) mit setTextfeld und der get-Methode in das Ausgabefeld zu schreiben.
Also das mit dem Carret hört sich nicht so gut an. Ich würde einen anderen Event nehmen und dann auf propertyChanged reagieren. Da bekommt man die alte und neue Property.
Die Referenz musst du da übergeben, wo du mit new "MeineKlasseZurBerechnung()" aufrust.
Achte darauf, dass du heir nicht nochmal new "MeinFenster" machst.