Anzeige:
Ergebnis 1 bis 10 von 10

Thema: Map in Textbox

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.08.2008
    Beiträge
    13

    Question Map in Textbox

    Hallo,

    ihc bin Java- Anfänger und habe in meiner Arbeit QueryResults in einer Map abgelegt. Die Daten sind auch vorhanden und lassen sich in der Console ausgeben. mittels

    System.out.println(map.toString());

    Jetzt würde ich gern die Ergebnisse in einer Textbox ausgeben. Leider geht das über

    textbox.setText(map.toString());

    nicht. Ich würde die Ausgabe (http://......#subject) auch gern ein Stück kürzen. Nur subject ist für mich interessant.
    Kann mir bitte jemand helfen?
    Vielen Dank schon mal im Vorraus!

    Mit freundlichem Gruß,

    bine85

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Ansich sollte das schon gehen.
    Welchen Fehler bekommst du?

    Für das Reduzieren der Daten bräuchten wir einen Anhaltspunkt, wie die Map aussieht, d.h. welche Datentypen als Key und Value benutzt werden, usw.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.08.2008
    Beiträge
    13
    Guten Abend,

    leider bekomme ich gar keine Fehlermeldung! Ich habe es folgendermaßen realisiert:

    bSuchen.addSelectionListener(new SelectionAdapter() {
    String queryString = null;
    QueryResults results = null;

    public void widgetSelected(final SelectionEvent e) {
    queryString = tEingabe.getText();
    //tAusgabe.setText("Hallo");
    Sparql anfrage = new Sparql(owlModel.getOwlModel());
    Map map = null;
    try {
    results = anfrage.executeQuery(this.queryString);
    while(results.hasNext()){
    map = results.next();
    //System.out.println(map.toString());
    tAusgabe.setText(map.toString());
    }
    } catch (Exception e1) {
    System.out.println("Fehler bei Click");
    e1.printStackTrace();
    }
    }
    });

    shell.layout();
    while (!shell.isDisposed()) {
    if (!display.readAndDispatch())
    display.sleep();
    }
    Die Map hat als einen Beispieleintrag:

    {subject=DefaultOWLNamedClass(http://www.semanticweb.org/ontologie...logene_lamp_LV), object=DefaultOWLNamedClass(http://www.semanticweb.org/ontologies/2008/4/Ontology1210323622015.owl#Actuator)}
    .

    Vielen Dank für deine Hilfe!

    Gruß, Sabine

  4. #4
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Code:
    tAusgabe.setText(map.get("subject"));
    Schau dir das Interface von java.util.Map an.
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  5. #5
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Aja, du hast scheinbar mehrere results. Aber weil du sie immer überschreibst siehst du wohl nur das letzt. (Bitte rück deinen Code auch g'scheit ein, damit man ihn lesen kann.)
    Code:
    bSuchen.addSelectionListener(new SelectionAdapter() {
       String queryString = null;
       QueryResults results = null;
    
          public void widgetSelected(final SelectionEvent e) {
             queryString = tEingabe.getText();
             Sparql anfrage = new Sparql(owlModel.getOwlModel());
             try {
                StringBuilder buf = new StringBuilder();
                results = anfrage.executeQuery(this.queryString);
                for (Map map : results) {
                   buf.append(map.get("subject") + "\n");
                }
                tAusgabe.setText(buf.toString());
             } catch (Exception e1) {
                System.out.println("Fehler bei Click");
                e1.printStackTrace();
             }
          }
       });
    
    shell.layout();
    while (!shell.isDisposed()) {
       if (!display.readAndDispatch())
          display.sleep();
    }
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  6. #6
    Registrierter Benutzer
    Registriert seit
    30.08.2008
    Beiträge
    13
    Guten Morgen,

    vielen Dank für die Hilfe, nur leider läuft das Programm immernoch nicht.
    try {
    StringBuilder buf = new StringBuilder();
    results = anfrage.executeQuery(this.queryString);
    for (Map map : results) {
    buf.append(map.get("subject") + "\n");
    }
    tAusgabe.setText(buf.toString());
    } catch (Exception e1) {
    System.out.println("Fehler bei Click");
    e1.printStackTrace();
    }
    Warum muss ich die Ergebnisse nicht mehr zuerst in die Map schreiben?
    Bei der for Schleife, wird der Fehler angezeigt: map cannot be resolved to a type! und results: Can only iterate over an array or an instance of java.lang.Iterable.
    Mit diesen Fehlermeldungen kann ich leider gar nichts anfangen.
    Vielen Dank schon mal im Vorraus.

    bine85

  7. #7
    Registrierter Benutzer
    Registriert seit
    30.08.2008
    Beiträge
    13
    sorry, das ging wieder nicht mit dem Einrücken!
    Code:
    try {
        StringBuilder buf = new StringBuilder();
        results = anfrage.executeQuery(this.queryString);
                
        for (Map map : results) {
            buf.append(map.get("subject") + "\n");
        }
        tAusgabe.setText(buf.toString());
    } catch (Exception e1) {
        System.out.println("Fehler bei Click");
        e1.printStackTrace();
    }

  8. #8
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    Die Klassen QueryResults und Sparql kenne ich nicht, ich arbeite normalerweise mit PreparedStatement. Das gibt ein ResultSet zurück. Dann geht:

    [code]
    while (results.next()){
    buf.append(results.getString("subject));
    }

    Wenn Du natürlich die Abfrageergebnisse noch weiterverarbeiten willst, solltest du sie irgendwo zwischenspeichern.
    Das Ziel ist das Ziel.

  9. #9
    Registrierter Benutzer
    Registriert seit
    30.08.2008
    Beiträge
    13
    Guten Abend,

    leider funktioniert das auch nicht. Die Referenz hat mir auch nicht wirklich weiter geholfen. Bei dem Code passiert einfach nichts. Keine Fehlermeldung und auch keine sonstigen Auffälligkeiten.

    Danke für eure Hilfe,

    Bine

  10. #10
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    Bist du denn sicher, dass überhaupt etwas zurückgegeben wird? Wenn das Resultat leer ist, kann ja nichts passieren. Um es ganz brutal zu sichern, könntest du mal

    Code:
    buf.append("baue Puffer");
    while (results.next()){
    buf.append(results.getString("subject));
    }
    buf.append("Puffer gebaut");
    ausprobieren. Wenn da nichts kommt, wird der code gar nicht erst abgearbeitet. Dann könnte vorher schon ein Fehler aufgetreten sein, der abgefangen wurde.
    Das Ziel ist das Ziel.

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •