probleme in der kommunikation von klassen

Status
Nicht offen für weitere Antworten.
M

masterdot

Gast
hallo ersteinmal...

ich brauche hilfe...

es geht um folgendes:
die aufgabenstellung war ein t9 system mit einer auswahlliste.
es funktioniert soweit alles, nur bekomme ich die auswahl aus der auswahlliste nicht in die hauptgui weitergerreicht.

es sieht folgendermassen aus:

es wird ein woerterbuch erzeugt, dieses wird an die grafische oberflaeche weitergegeben.

in der grafischen oberflaeche wird eine eingaberoutine erzeugt
Code:
    eingabe = new EingabeRoutine(dictionary);


dann wird von der grafischen oberflaeche per keylistener ein zeichen abgefangen und an die eingabe routine uebermittelt:

Code:
 public void keyReleased(KeyEvent e)
  {
[...]
   
       input.setText(eingabe.EingabeZeichen(e.getKeyChar(), this));
       // das eingegebene zeichen und die grafische oeberflaeche wird uebergeben
[...]

    validate();
  }

input ist hier das feld wo der text rein kommt.
das zeichen wird dann an die funktion EingabeZeichen weitergegeben.

Code:
 String EingabeZeichen(char zeichen, GrafischeOberflaeche haupt)
  {
  [...]
      suchvec = SucheWort(daswort);
    if (suchvec.size() > 0)
    {
      AusgabeMoeglichkeiten(haupt); // aufruf der auswahlliste

      // sonst das erste wort nehmen das gefunden wurde
      int stelle = Integer.parseInt((String) suchvec.elementAt(0));
      einwort = dictionary[stelle].StringHolen();

      if (suchvec.size() == 1)
      {
        daswort = "";
        einwort = dictionary[stelle].StringHolen();
    [...]
          }
    }
    [...]
    return einwort;
  }

das zeichen wird an den string daswort angefuegt und dann in die funktion SucheWort weitergegeben.

Code:
  Vector SucheWort(String suchwort)
  {
    Vector funde = new Vector();

    int menge = dictionary.length;
    for (int i = 0; i < menge; i++)
    {
    [...]
    }

    return (funde);
  }

der resultierende vector enthaelt die position der treffer im gesamten woerterbuch und wird in suchvec uebertragen.

Code:
      suchvec = SucheWort(daswort);

dann wird der suchvec ueberprueft.

Code:
   if (suchvec.size() > 0)
    {
      AusgabeMoeglichkeiten(haupt);
    [...]

wenn er mehr als 0 elemente hat, wird dann die AusgabeMoeglichkeitenfunktion aufgerufen

Code:
  void AusgabeMoeglichkeiten(GrafischeOberflaeche haupt)
  {
    if (suchvec.size() > 1)
    {
      AuswahlListe liste = new AuswahlListe(this);
    }
  }

die auswahlliste bekommt als parameter die eingaberoutine mitgegeben wegen dem suchvector.
dann baut sie anhand des suchvectors ein neues fenster auf und fuegt die elemente des suchvectors ein.
hierzu ziehe ich mir folgendes rueber:

Code:
    [...]

    this.haupt = haupt;                     // die eingabe routine
    this.suchvec = haupt.suchvec;           // der suchvector der eingaberoutine
    this.dictionary = haupt.dictionary;        // das woerterbuch

    [...]

wenn waehrend der darstellzeit des fensters der auswahlliste eine taste gedrueckt wird, wird per keylistener der timer angehalten, der dafuer sorgt, das sich das fenster schliesst, wenn nichts passiert, und es kommt ein eingabedialog:

Code:
  public void keyPressed(KeyEvent arg0)
  {

    String wahl =  JOptionPane.showInputDialog(null, "Ihre Auswahl:");
    try{

     [...]

      auswahl = Integer.parseInt((String)suchvec.elementAt(stelle));

      suchvec.removeAllElements();
      suchvec.addElement(auswahl + "");

    [...]
        
      
    }catch (NumberFormatException e)
    {
      dispose();
    }

soweit so gut... es geht, der index wird richtig angesprochen, es ist das richtige element und so weiter...

bloss wie bekomme ich jetzt diesen index da wieder raus?

was ich bis jetzt versucht habe:
- direkten zugriff auf die hauptoberflaeche
fehlgeschlagen
- weiterleiten zu der eingaberoutine
fehlgeschlagen

zudem finde ich komisch, das der suchvector zwar modifiziert wird, aber der aufbau abgeschlossen ist, bevor diese eingabe ueberhaupt abgefruehstueckt ist...


Code:
      suchvec = SucheWort(daswort);
    if (suchvec.size() > 0)
    {
      AusgabeMoeglichkeiten(haupt); // aufruf der auswahlliste

      // sonst das erste wort nehmen das gefunden wurde
      int stelle = Integer.parseInt((String) suchvec.elementAt(0));
      einwort = dictionary[stelle].StringHolen();

      if (suchvec.size() == 1)
      {
        daswort = "";
        einwort = dictionary[stelle].StringHolen();
    [...]
          }
    }
    [...]

nach meinem bisherigen verstaendnis ( arbeite noch nicht so lange mit der gui) sollte doch erst der block mit der ausgabemoeglichkeiten abgearbeitet werden, dann der block mit dem suchvec.size() kommen.
aber irgendwie kommt das nicht so wirklich an.

hat jemand eine ahnung wie ich das hinbekomme?

ich hoffe das die fragmente ausreichen um einen ueberblick zu bekommen, wollte der uebersichtlichkeit nicht den ganzen code posten...

wenn fragen sind, ich heute oefters hier am gucken, weil ich dringenst eine loesung brauche.. sonst kann ich das haken...

danke schonmal im voraus fuer jeden erdenklichen tip ( ausser das alles zu muellen :) ) [/code]
 

megachucky

Bekanntes Mitglied
wow, also wenn das ne anfängerfrage ist, dann brauch ich nix mehr fragen :)

du solltest es lieber im GUI forum probieren, da bekommst sicher schneller ne antwort als hier...
 

foobar

Top Contributor
Ich verstehe das Problem nicht so ganz, aber wenn es um den Zugriff auf eine andere Klasse geht könnte dir das hier helfen: Singleton
 
M

masterdot

Gast
so, zur klaerung fuer jemanden, der evenutell ein aehnliches problem mal hat...

in dem aufruf wurde das fenster erzeugt, aber es wurde NICHT darauf gewartet, das aenderungen kommen.

folgender loesungsansatz:

das fenster muss erzeugt werden und das programm muss solange mit der abarbeitung warte, bis das fenster geschlossen ist.

ich habe jetzt folgende aenderungen in der auswahlliste gemacht:

Code:
class AuswahlListe extends JDialog implements ActionListener, KeyListener
[...]
  JFrame parent;
  
  public AuswahlListe  ( EingabeRoutine haupt)
  {
    parent = new JFrame();
[...]
    setModal(true);
[...]

mit dem setmodal(true) wird gesagt, warte bis dieses fenster zu ist... ist eine sonderoption des jdialogs wenn ich das richtig verstanden haben...

dank nochmal an beni!

hast mir viel arbeit erspart...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Probleme bei Verwendung short und int im Constuctor Java Basics - Anfänger-Themen 6
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
I Projekte in IDE untereinander sharen / Probleme beim Build Java Basics - Anfänger-Themen 8
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
Jxhnny.lpz TicTacToe Spiel vs Computer. (Probleme) Java Basics - Anfänger-Themen 7
B Quiz mit RMI Probleme mit RMI start Java Basics - Anfänger-Themen 4
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
V Probleme Guessing Game Java Basics - Anfänger-Themen 8
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
R JMenu/JMenuItem Probleme Java Basics - Anfänger-Themen 2
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
J Probleme mit dem Debugger Java Basics - Anfänger-Themen 4
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
J Probleme mit Kompilierung Java Basics - Anfänger-Themen 11
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
C Probleme mit paintComponent Java Basics - Anfänger-Themen 13
P Probleme mit JUnit-Tests, es kommt was anderes raus als bei manuellen Tests Java Basics - Anfänger-Themen 5
E JavaFX Editor Probleme mit der Zwischenablage Java Basics - Anfänger-Themen 12
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
R Erste Schritte Probleme bei 2D Spielfeld, mit einzufügender "Person" Java Basics - Anfänger-Themen 5
P Probleme bei der Installation von JavaFX Java Basics - Anfänger-Themen 3
S Mehrere Probleme im Code Java Basics - Anfänger-Themen 7
D Probleme mit JFrame und der Größe Java Basics - Anfänger-Themen 8
Dimax String Probleme Java Basics - Anfänger-Themen 12
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
Splayfer Java Array Probleme Java Basics - Anfänger-Themen 3
J Probleme bei IllegalArgumentException "werfen". Java Basics - Anfänger-Themen 1
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
X Probleme im Umgang mit PriorityQueue Java Basics - Anfänger-Themen 75
D Probleme mit dem Windowbuilder und JComboBox Java Basics - Anfänger-Themen 2
M Regex Probleme (mal wieder) Java Basics - Anfänger-Themen 3
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
X Probleme mit Übungsaufgaben zu Zahlentypen Java Basics - Anfänger-Themen 4
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
B Probleme bei einer Aufgabe Java Basics - Anfänger-Themen 19
Franzi1001 Probleme mit Eclipse Java Basics - Anfänger-Themen 7
T Probleme bei Installation von JDK Java Basics - Anfänger-Themen 2
C Probleme mit String-Vergleich Java Basics - Anfänger-Themen 4
C Probleme bei Regex Java Basics - Anfänger-Themen 9
V Probleme mit Arrays Java Basics - Anfänger-Themen 8
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
T Probleme mit Strings Java Basics - Anfänger-Themen 6
G Probleme bei Frame aufgaben Java Basics - Anfänger-Themen 6
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
L Probleme mit Java Java Basics - Anfänger-Themen 3
S Probleme mit abspielen einer .wav Datei Java Basics - Anfänger-Themen 2
J Probleme bei der Umwandlung einer Farbe von Hex zu RGB Java Basics - Anfänger-Themen 8
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
M Probleme beim aktualisieren eines JPanels Java Basics - Anfänger-Themen 7
J Probleme beim Array ausgeben Java Basics - Anfänger-Themen 4
M Probleme bei rekursiver Zuordnung Java Basics - Anfänger-Themen 1
I Probleme mit 2 dimensionale Arrays Java Basics - Anfänger-Themen 3
H Best Practice View probleme Java Basics - Anfänger-Themen 2
B Probleme mit Kreisberechnung Java Basics - Anfänger-Themen 15
E Probleme mit Scanner Java Basics - Anfänger-Themen 4
J Eclipse Export Probleme Java Basics - Anfänger-Themen 25
M Probleme beim verwenden von Packages Java Basics - Anfänger-Themen 6
D Probleme mit der Übergabe einer BorderPane Java Basics - Anfänger-Themen 2
J Interface Probleme bei der Implementierung Java Basics - Anfänger-Themen 1
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
G Methoden Probleme beim Methodenaufruf Java Basics - Anfänger-Themen 2
V Klassen ObjectInputStream ->ReadObject Probleme Java Basics - Anfänger-Themen 5
P Probleme mit der Do-Schleife Java Basics - Anfänger-Themen 2
F Erste Schritte Compiling Probleme Java Basics - Anfänger-Themen 13
S Neuling und Probleme bei Schulaufgabe Java Basics - Anfänger-Themen 5
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
M Probleme mit Eclipse Java Basics - Anfänger-Themen 20
G Probleme beim casten von double zu int Java Basics - Anfänger-Themen 3
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
S Compiler-Fehler javac hat Probleme mit Paketen unter OSX Java Basics - Anfänger-Themen 2
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5
B Variablen Probleme mit Eclipse Java Basics - Anfänger-Themen 6
H Mouse- und KeyListener Probleme? Java Basics - Anfänger-Themen 5
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
I Probleme bei Verzeichnissanalyse Java Basics - Anfänger-Themen 12
F Probleme mit privaten Klassen (abstrakten Klassen) Java Basics - Anfänger-Themen 1
H Probleme mit Klassen...oder: Eine Uhr Java Basics - Anfänger-Themen 9
G Probleme mit Konsole Java Basics - Anfänger-Themen 4
S Probleme mit GamGrid Spiel-Erstellung => Actor reagiert nicht auf Tastatur Java Basics - Anfänger-Themen 2
G Probleme mit Eclipse oder der URL Klasse Java Basics - Anfänger-Themen 5
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
M Probleme mit Anzeigen von String in GUI und if-Anweisung Java Basics - Anfänger-Themen 9
T Konstruktor Probleme Java Basics - Anfänger-Themen 3
W Methoden Probleme mit der Scanner Methode Java Basics - Anfänger-Themen 2
F Ja Nein Abfrage und andere Probleme Java Basics - Anfänger-Themen 5
L If Anweisung mit ArrayList Probleme Java Basics - Anfänger-Themen 6
littles_de Simbad Simulator probleme mit Sensordaten... Java Basics - Anfänger-Themen 0
M Erste Schritte Probleme beim Verknüpfen von Methoden Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben