Wyszukiwanie po nazwie wiersza z jTable

Odpowiedz Nowy wątek
2014-01-14 19:29
0

Mam oto taki problem :
Mam stworzoną tabele jTable2 wypełnioną przykładowymi danymi typu String. model tabeli :(DefaultTableModel)
Dodałem też komponent jTextField1.

I teraz chciałbym zrobić tak żeby po wduszeniu buttona program pobierał tekst z jTextField i zaznaczył wiersz w jTable który zawiera taką samą treść co jTextField.
Na chłopski rozum : po uruchomieniu programu wpisuje Ala w jTextField, klikam buttona i zaznacza mi w jTable wiersz w którym znajduje sie Ala.

Prosił bym pilnie o pomoc bądź jakieś wskazówki.
Z góry dziękuje

Pozostało 580 znaków

2014-01-14 19:39
0

Próbowałem w ten sposób ,jednak cały czas wyrzuca ze nie znaleziono elementu

String b = jTextField1.toString();
for(int i=0;i<jTable2.getRowCount();i++) {
String a = (String) jTable2.getValueAt(i, i);
if (b.equals(a)){ jTable2.setRowSelectionInterval(i, i);

        }else{
            int WARNING_MESSAGE = 0;
            JOptionPane.showMessageDialog(null, "Nie znaleziono elementu ","Uwaga!",WARNING_MESSAGE);
}
}
}

Pozostało 580 znaków

2014-01-14 19:48
0
for(int i=0;i<table.getRowCount();i++) {
   for(int j = 0; j < table.getColumnCount(); j++){
      if (table.getValueAt(i, j).equals(b))
         System.out.println("jest");
      else
         System.out.println("niema");
   }
}

Przechodzenie po kolumnach i wierszach. A nie tylko po jednym z nich. Pozmieniałem nazwy zmiennych na swoje jakby coś.
Sprawdzałeś, działa?

edytowany 1x, ostatnio: szweszwe, 2014-01-14 20:03

Pozostało 580 znaków

2014-01-14 20:06
0

Faktycznie przechodziłem tylko po wierszach. Dodałem przejście również po kolumnach jedak cały czas ten sam problem. Nie znajduje nic w tabeli. Może źle pobieram wartość z jTextField ?

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
String b = jTextField1.toString();
for(int i=0;i<jTable2.getRowCount();i++) {
for(int j = 0; j < jTable2.getColumnCount(); j++){
if (jTable2.getValueAt(i, j).equals(b)){
jTable2.addRowSelectionInterval(i, j);
}else{
int WARNING_MESSAGE = 0;
JOptionPane.showMessageDialog(null, "Nie znaleziono elementu ","Uwaga!",WARNING_MESSAGE);
}
}
}
}

Pozostało 580 znaków

2014-01-14 20:10
1
String b = jTextField1.toString();

Wypisz sobie wcześniej tego Stringa z ciekawości. Prawdopodobnie zawiera nazwę JTextField'a zamiast tego co się w nim znajduje.

Pozostało 580 znaków

2014-01-14 20:18
0

Faktycznie po nadaniu stringa w kodzie zadziałało, jednak zaznaczyło wiersz w którym znajduje się b i dodatkowo dwa poniżej w których nie ma wartości b

Pozostało 580 znaków

2014-01-14 20:20
0

String b = jTextField1.getText();

i pobiera już wartość z textFielda a nie jego nazwe, jednak cały czas nie wiem dlaczego zaznacza dodatkowe 2 wiersze

Pozostało 580 znaków

2014-01-14 20:25
0

oto cały kod na wyszukiwanie w tabeli i zaznaczenie wiersza

 private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:

        String b = jTextField1.getText();
        for(int i=0;i<jTable2.getRowCount();i++) {
        for(int j = 0; j < jTable2.getColumnCount(); j++){
        if (jTable2.getValueAt(i, j).equals(b)){
        jTable2.addRowSelectionInterval(i, j);
      }
      }
      }
    }        

Pozostało 580 znaków

2014-01-14 20:37

Gdzieś w kodzie:

table.setCellSelectionEnabled(true);

I później:

if (table.getValueAt(i, j).equals(b))  
   table.changeSelection(i, j, true, false);

Pozostało 580 znaków

2014-01-14 20:43
0

Dziękuje bardzo za pomoc :) Teraz działa jak należy :)
a tak nawiasem mówiąc można jakoś zrobić żeby wiersz się odznaczał jeśli kliknie się gdzieś poza jTable ?

@cuadam1992 pewnie tak, ale musiałbym poszukać bo sam nawet wcześniej nie używałem jTable. :) - szweszwe 2014-01-14 20:50

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0