JComboBox

flipo84

Mitglied
Hallo Leute hab da nochmal ein kleines Problem...........

Hab mir eine GUI zusammengebastelt in der Ich Daten laden kann und diese in einer JTextArea ausgegeben werden.
Jetzt habe ich eine kleine Suche eingebunden, wo die Daten nach der Eingabe in einem TextFeld durchsucht werden und ausgegeben werden sollen, funktioniert soweit auch.
Dazu kommt eine ComboBox die wie folgt aufgebaut ist:

Code:
  public JComboBox getJComboBoxTyp()
  {
    if(jComboBoxTyp == null)
    {   
      String [] name = {"<<Bitte auswählen>>", "STATS", "DEBUG" };
      jComboBoxTyp = new JComboBox(name);             //String Array zum füllen der ComboBox
      jComboBoxTyp.setSelectedIndex(0);     
      jComboBoxTyp.setName("");
      jComboBoxTyp.setToolTipText("");
      jComboBoxTyp.setFont(new Font("Dialog", Font.BOLD, 12));
      jComboBoxTyp.setPreferredSize(new Dimension(145, 20));         
   // jComboBoxTyp.setVisible(false);
    }
    return jComboBoxTyp;
  }
Als erstes Wert zeigt er an Bitte auswählen und dann die vorgegebenen Punkte. Kann bei der Suche auch damit arbeiten wenn man einen Unterpunkt aussucht.
Mein Problem ist es jetzt wenn man nichts aussucht, dann sucht er immer nach <<Bitte auswählen>>, welches als erstes angezeigt wird. Wie bekomme ich es hin das wenn man nichts auswählt, er auch nicht in die Suche mit einbezieht?

Vielen Dank schon mal im Vorraus
 
Ach so vielleicht noch das hier, in meiner SuchMetohe hol ich mir die Info wie folgt

String searchCombo = jComboBoxTyp.getSelectedItem());
 
Hallo,

vielleicht solltest du überprüfen was in dem String steht. Wenn dann "<<Bitte auswählen>>" drin steht, dann solltest du die Combobox nicht in die suche einbeziehen.

String vergleicht man mit equals
Java:
searchCombo.equals("<<Bitte auswählen>>");

Diese Methode gibt einen booleanwert zurück. Wenn dieser True ist stimmt der Text überein und du solltest danach nicht suchen.
Du kannst natürlich auch einen ItemListener verwenden und mit diesem eine boolea-variable setzen.

MFG

zEriX
 
Das ist der Quellcode in dem ich die Suche abwickle und auf die ComboBox zugreife:

Code:
    if(info.equals("searchDialog"))
    {
    
    /**
     * Methode zum durchsuchen der ausgewählten Datei
     * 
     */    
       String text = ((MainFrame)view).getJTextArea().getText();
       ((MainFrame)view).getJTextArea().setText(""); //Setzt TextArea nach such zurück und gibt das Ergebnis aus
       String searchSid = ((MainFrame)view).getJTextFieldSid().getText();       
       String searchTyp = ((MainFrame)view).getJTextFieldUser().getText();       
       String searchVon = ((MainFrame)view).getJTextFieldDatum().getText();       
       String searchBis = ((MainFrame)view).getJTextFieldZeit().getText();       
       String searchCombo =((String)((MainFrame)view).jComboBoxTyp.getSelectedItem());
      // searchCombo.equals("<<Bitte auswählen>>");
       String[] rows =  text.split("\n"); // split teilt den String
       ((MainFrame)view).jProgressBar.setVisible(true);  // ProgressBar wird eingeblendet, damit der Benutzer sieht, das das Programm arbeitet
            
       for(String row : rows)
       {
          
        if((row.contains(searchSid))&&(row.contains(searchTyp))&&
               (row.contains(searchVon))&&(row.contains(searchBis))&&
               (row.contains(searchCombo)))
           {
            ((MainFrame)view).getJTextArea().append(row+"\n");
           } 
       } 
       ((MainFrame)view).jProgressBar.setVisible(false);
  }

Kannst du mir das mal mit einbinden? Werd da nicht so schlau draus wie ich das umsetzten kann.
 
Ich hab dir beschrieben wie du vorgehen musst. Damit es nicht wieder so ein Monster-Thread wird, wegen ein paar Zeilen Code, mach dir mal ein paar Gedanken bevor du wieder postest.
Es gibt bei Java und vielen anderen Programmier-Sprachen eine If-Anweisung, in die das Programm nur reingeht wenn eine Abfrage true ist. Sowas wäre hier sehr hilfreich.
Ein paar Gedanken sollte man sich schon selbst machen, bzw. mal Grundwissen aneigenen, was du meiner Meinung nach nicht hast. Es sind nämlich keine komplizierten Anweisungen die du umsetzen willst.
Es bringt nämlich nichts, wenn man dir immer zeigt wie irgendwas funktioniert. So lernst du nämlich nichts.
 
Ich hatte jetzt schon mal eine if-Schleife um die Abfrage gelegt wo er prüft, wenn eingabe STATS und DEBUG dann soll er die Suche ausführen aber dann hatte ich das Problem, das er die anderen Sachen nicht mehr korrekt ausführt..........

Kannst du mir bittttttttttttttteee diesmal nochmal helfen, nur das eine mal noch, währe dir echt dankbar wenn du mir etwas lösen könntest
 
Zurück