Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pretrazivanje JTable-a - hitno!!!!

[es] :: Java :: pretrazivanje JTable-a - hitno!!!!

[ Pregleda: 3266 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

trodon
Nebojsa Brindic
CTO
Bincode Entertainment
Beograd

Član broj: 14115
Poruke: 219
212.200.178.*

Sajt: bincode-entertainment.com


Profil

icon pretrazivanje JTable-a - hitno!!!!29.01.2007. u 10:07 - pre 209 meseci
Recimo da imam neku tabelu (obichan JTable) i da u prvoj koloni imam prezimena ljudi. Kako odraditi pretrazivanje po prezimenima (npr. kliknem na neko "find" dugme, izleti neko g**** gde cu da ukucam prezime i kada se obavi trazenje, da mi fokusira tabelu na taj red gde je trazeno ime). Ako neko zna, josh vishe bi mi znachilo da se odradi pretrazivanje kao u winamp - u. Pomagajte ljudi. Hvala unapred.
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
*.ns.ac.yu.



+6 Profil

icon Re: pretrazivanje JTable-a - hitno!!!!29.01.2007. u 11:15 - pre 209 meseci
JTable samo prikazuje ono sto sadrzi njen TableModel.
Znaci pretrazivanje vrsis u modelu, a da selektujes odredjeni red iskoristi metodu JTable.changeSelection().

pozzz.
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

trodon
Nebojsa Brindic
CTO
Bincode Entertainment
Beograd

Član broj: 14115
Poruke: 219
212.200.183.*

Sajt: bincode-entertainment.com


Profil

icon Re: pretrazivanje JTable-a - hitno!!!!30.01.2007. u 10:15 - pre 209 meseci
Ok, evo shta sam ispisao, ali mi ne radi, jednostavno kada kliknem na dugme "find" ne deshava se nishta...

Code:

public void actionPerformed(ActionEvent e) {
          if (e.getObject().equals(findButton)) {
                    TableModel model = clientTable.getModel();
                    for (int i = 0; i < clientTable.getRowCount(); i ++)
                              if (model.getValueAt(i, 1).toString().equals(nekoPrezimeKojeTrazim))
                                        clientTable.changeSelection(i, 1, false, false);
           }
}

U chemu je problem? Mozda ne kapiram dobra rad sa tabelama ali bio sam primoran da ga sada nauchim. Pomagajte, imam fore do 6.-tog za taj seminarski...

[Ovu poruku je menjao hyle dana 30.01.2007. u 13:36 GMT+1]
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
*.ns.ac.yu.



+6 Profil

icon Re: pretrazivanje JTable-a - hitno!!!!30.01.2007. u 10:53 - pre 209 meseci
Ako su ti u prvoj koloni prezimena onda stavi
Code:
getValueAt(i, 0)


Postuj neko kompletnije parce koda koje moze da se pokrene pa cu ti onda moci vise pomoci.

pozzz
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

trodon
Nebojsa Brindic
CTO
Bincode Entertainment
Beograd

Član broj: 14115
Poruke: 219
212.200.176.*

Sajt: bincode-entertainment.com


Profil

icon Re: pretrazivanje JTable-a - hitno!!!!31.01.2007. u 10:44 - pre 209 meseci
Evo pogledaj. Uglavnom, treba da napravim sistem od dve tabele(server i klijent), i da klijentova funkcionishe tako shto se puni sa servera. E sad, ako se user loguje, i nije bilo izmena na serveru od userovog poslednjeg logOuta, client pravi tabelu sa svog harda (iz nekog TableModela koji smo sachuvali u nekom file-u). Ako je bilo izmena, client moze da pravi celu tabelu iz serverovog modela, ili da napravi tabelu iz svog modela na hardu, a onda da trazi od servera sve izmene od poslednjeg logOuta (ovo je teze ali je i praktichnije). Imash u TableMaker-u (u mom kodu) pod komentarom kako sam ovo zamislio. Kod je malo shugaviji, ali jebiga, non stop sam neshto prepravljao i pokushavao. E, da, glavni trip je u tome da kada server shalje informacije klijentu, MORA da ih shalje u obliku stringa i to na ovu foru: petrovic:marko:178:74:23:04:1985. Kapirash, sve podatke jednog reda tabele treba da spakuje u ovo. Ako si upucen u FIX protocol bice ti jasno, mada nije ni bitno, skapiracesh kako se to sve obavlja. Ovo shto vidish u trecoj koloni (new Date()), tu u stvari treba da stoji datum kada je poslednji put neshto izmenjeno. Ako imash vremena, reshi mi problem sa upload-ovanjem clientove tabele(daj mi samo ideju ili pseudo), onaj changeSelection() od ranije, i to je to. Ako mislish da imash josh neke korisne informacije, slusham te....
Pozdrav, hvala unapred.

Code:

/*
 * SimpleTableDemo.java is a 1.4 application that requires no other files.
 */

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JButton;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import javax.swing.event.*;
import javax.swing.table.TableModel;
import java.awt.Color;
import javax.swing.JTextField;


public class TableMaker extends JPanel implements ActionListener, TableModelListener {
    
    JTable clientTable;
    JTable serverTable;
    JButton copyButton;
    TableModel model;
    JTextField textField;
        
    public TableMaker() {
        super(new GridLayout(4,0));

        String[] columnNames = {"Company Name",
                                "Equity Price",
                                "No Changes Since:"};
        
        Object[][] data = {
            {"Uzas", new Integer(5000), new Date()},
            {"Bedak", new Integer(15000), new Date()},
            {"Smor", new Integer(13000), new Date()},
            {"Katastrofa", new Integer(13000), new Date()},
            {"Blejanje", new Integer(11500), new Date()}
            };
        
        copyButton = new JButton("Copy");
        copyButton.addActionListener(this);
                
        textField = new JTextField("Search");

        serverTable = new JTable(data, columnNames);
        serverTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
        serverTable.getModel().addTableModelListener(this);
        clientTable = new JTable(serverTable.getRowCount(), serverTable.getColumnCount());
        clientTable.setSelectionBackground(Color.BLUE);
        
        //Create the scroll pane and add the table to it.
        JScrollPane serverTableScrollPane = new JScrollPane(serverTable);
        JScrollPane clientTableScrollPane = new JScrollPane(clientTable);

        //Add the scroll pane to this panel.
        add(serverTableScrollPane);
        add(textField);
        add(clientTableScrollPane);
        add(copyButton);
        
    }
    
    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(copyButton)) {
        for(int i = 0; i < serverTable.getRowCount(); i ++) 
                 for(int j = 0; j < serverTable.getColumnCount(); j ++) 
                     clientTable.setValueAt(serverTable.getValueAt(i, j), i, j);
        }
        /*if (e.getSource().equals(sortButton)) {
            TableSorter sorter = new TableSorter(new TableMaker()); 
            clientTable = new JTable(sorter);
            sorter.setTableHeader(clientTable.getTableHeader());
        }
        */
        
    }
    
    public void tableChanged(TableModelEvent e) {
        int row = e.getFirstRow();
        int column = e.getColumn();
        model = (TableModel)e.getSource();
        String columnName = model.getColumnName(column);
        Object changedData = model.getValueAt(row, column);
        
        
        /*
         * npr. na klijentu stavimo promenljivu lastLogOut, tipa Date(), koja dobija
         * odgovarajucu vrednost svaki put kada se user izloguje sa servera.
         * To uporedjuje sa serverovom promenljivom lastDataChange, i ako je lastDataChange
         * obavljen nakon poslednjeg logOuta, user uzima podatke sa servera. Ako ne, user 
         * pravi tabelu iz sopstvenog TableModel-a koji bi nekako trebalo serijalizovati i 
         * chuvati na lokalnoj mashini.
         * 
         * Ako je user kojim sluchajem konektovan, a u medjuvremenu dodje do promene podataka,
         * server odmah shalje fix poruke do klijenta. Sve se obavlja kroz uporedjivanje
         * pomenuta 2 datuma.
         */
        
    }
    
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    private static void createAndShowGUI() {
        //Make sure we have nice window decorations.
        JFrame.setDefaultLookAndFeelDecorated(true);
        
        //Create and set up the window.
        JFrame frame = new JFrame("SimpleTableDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Create and set up the content pane.
        TableMaker newContentPane = new TableMaker();
        newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}



[Ovu poruku je menjao hyle dana 31.01.2007. u 13:12 GMT+1]
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
*.ADSL.neobee.net.



+6 Profil

icon Re: pretrazivanje JTable-a - hitno!!!!31.01.2007. u 16:42 - pre 209 meseci
Znaci u vezi ovog pozicioniranja evo pogledaj:
Code:



import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JButton;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Date;
import javax.swing.event.*;
import javax.swing.table.TableModel;
import java.awt.Color;
import javax.swing.JTextField;


public class TableMaker extends JPanel implements ActionListener, TableModelListener {

    JTable clientTable;
    JTable serverTable;
    JButton copyButton;
    TableModel model;
    JTextField textField;

    public TableMaker() {
        super(new GridLayout(4,0));

        String[] columnNames = {"Company Name",
                "Equity Price",
        "No Changes Since:"};

        Object[][] data = {
                {"Uzas", new Integer(5000), new Date()},
                {"Bedak", new Integer(15000), new Date()},
                {"Smor", new Integer(13000), new Date()},
                {"Katastrofa", new Integer(13000), new Date()},
                {"Blejanje", new Integer(11500), new Date()}
        };

        copyButton = new JButton("Copy");
        copyButton.addActionListener(this);

        textField = new JTextField("Search");
        textField.addKeyListener(new KeyAdapter(){            
            public void keyReleased(KeyEvent e) {
                String str = textField.getText().trim().toLowerCase();
                for(int i=0; i<serverTable.getRowCount(); i++){
                    String ssttrr = serverTable.getValueAt(i, 0).toString();
                    if(ssttrr.trim().toLowerCase().startsWith(str)){
                        serverTable.changeSelection(i, 0, false, false);
                        break;
                    }
                }
            }
            
        });

        serverTable = new JTable(data, columnNames);
        serverTable.setPreferredScrollableViewportSize(new Dimension(500, 70));        
        serverTable.getModel().addTableModelListener(this);
        clientTable = new JTable(serverTable.getRowCount(), serverTable.getColumnCount());
        clientTable.setSelectionBackground(Color.BLUE);
        

//        Create the scroll pane and add the table to it.
        JScrollPane serverTableScrollPane = new JScrollPane(serverTable);
        JScrollPane clientTableScrollPane = new JScrollPane(clientTable);

//        Add the scroll pane to this panel.
        add(serverTableScrollPane);
        add(textField);
        add(clientTableScrollPane);
        add(copyButton);

    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(copyButton)) {
            for(int i = 0; i < serverTable.getRowCount(); i ++)
                for(int j = 0; j < serverTable.getColumnCount(); j ++)
                    clientTable.setValueAt(serverTable.getValueAt(i, j), i, j);
        }
        /*if (e.getSource().equals(sortButton)) {
TableSorter sorter = new TableSorter(new TableMaker());
clientTable = new JTable(sorter);
sorter.setTableHeader(clientTable.getTableHeader());
}
         */

    }

    public void tableChanged(TableModelEvent e) {
        int row = e.getFirstRow();
        int column = e.getColumn();
        model = (TableModel)e.getSource();
        String columnName = model.getColumnName(column);
        Object changedData = model.getValueAt(row, column);


        /*
         * npr. na klijentu stavimo promenljivu lastLogOut, tipa Date(), koja dobija
         * odgovarajucu vrednost svaki put kada se user izloguje sa servera.
         * To uporedjuje sa serverovom promenljivom lastDataChange, i ako je lastDataChange
         * obavljen nakon poslednjeg logOuta, user uzima podatke sa servera. Ako ne, user
         * pravi tabelu iz sopstvenog TableModel-a koji bi nekako trebalo serijalizovati i
         * chuvati na lokalnoj mashini.
         *
         * Ako je user kojim sluchajem konektovan, a u medjuvremenu dodje do promene podataka,
         * server odmah shalje fix poruke do klijenta. Sve se obavlja kroz uporedjivanje
         * pomenuta 2 datuma.
         */

    }

    /**
     * Create the GUI and show it. For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    private static void createAndShowGUI() {
//        Make sure we have nice window decorations.
        JFrame.setDefaultLookAndFeelDecorated(true);

//        Create and set up the window.
        JFrame frame = new JFrame("SimpleTableDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//        Create and set up the content pane.
        TableMaker newContentPane = new TableMaker();
        newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);

//        Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
//        Schedule a job for the event-dispatching thread:
//        creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}


Dok budes kucao u JTextField-u tako ce ti se selektovati odgovarajuci red (onaj cija se prva kolona poklapa).
Nije mi jasno zasto kod tebe nije radilo.
Evo ti mali savet:
1. Koristi anonimne klase za event-e
2. Nemoj citav kod trpati u jednu klasu, vec razdvoji (npr. napravi custom TableModel i stavi ga u posebnu klasu).
3. Pogledaj malo layout manager-e (mada pretpostavljam da ti je ovo samo test klasa pa ti nije vazan izgled)

pozz
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

trodon
Nebojsa Brindic
CTO
Bincode Entertainment
Beograd

Član broj: 14115
Poruke: 219
212.200.176.*

Sajt: bincode-entertainment.com


Profil

icon Re: pretrazivanje JTable-a - hitno!!!!31.01.2007. u 19:58 - pre 209 meseci
Ovo mi je samo test, zato je grozno i pogano. Uglavnom, ovo shto si mi uradio je od ogromne pomoci. Hvala ti puno, ako mi zatreba neka pomoc, cimacu te opet. Pozdrav
 
Odgovor na temu

trodon
Nebojsa Brindic
CTO
Bincode Entertainment
Beograd

Član broj: 14115
Poruke: 219
212.200.177.*

Sajt: bincode-entertainment.com


Profil

icon Re: pretrazivanje JTable-a - hitno!!!!01.02.2007. u 11:44 - pre 209 meseci
Brate, ako nisi u nekoj guzvi, jel ti nije frka da mi napishesh kako da dodam listenere za dodavanje novih vrsta i kolona (kada se na serveru doda nova vrsta (ili kolona) da klijent to automatski detektuje i doda na svojoj tabeli).
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
*.ADSL.neobee.net.



+6 Profil

icon Re: pretrazivanje JTable-a - hitno!!!!01.02.2007. u 18:51 - pre 209 meseci
Evo recimo ovako nesto:
Code:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Date;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;


public class TableMaker extends JPanel implements ActionListener, TableModelListener {

    JTable clientTable;
    JTable serverTable;
    JButton copyButton;
    TableModel model;
    JTextField textField;
    Vector tableData = new Vector();
    int cnt = 0;

    public TableMaker() {
        super(new GridLayout(5,0));

        Vector data = new Vector();
        Vector names = new Vector();

        names.add("Company Name");
        names.add("Equity Price");
        names.add("No Changes Since:");

        Vector row = new Vector();
        row.add("Uzas");
        row.add(new Integer(5000));
        row.add(new Date());
        data.add(row);

        row = new Vector();
        row.add("Bedak");
        row.add(new Integer(15000));
        row.add(new Date());
        data.add(row);

        row = new Vector();
        row.add("Blejanje");
        row.add(new Integer(115000));
        row.add(new Date());
        data.add(row);

        MyModel tableModel = new MyModel(data, names);

        copyButton = new JButton("Copy");
        copyButton.addActionListener(this);

        JButton addRowBtn = new JButton("Add row");
        addRowBtn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                Vector row = new Vector();
                row.add("Novo"+ (++cnt));
                row.add(new Integer(5000+cnt));
                row.add(new Date());
                MyModel mdl = (MyModel)serverTable.getModel();
                mdl.getData().add(row);
                serverTable.tableChanged(null);
                serverTable.firePropertyChange("dodatNoviRed", 0, mdl.getData().indexOf(row));
            }            
        });


        textField = new JTextField("Search");
        textField.addKeyListener(new KeyAdapter(){            
            public void keyReleased(KeyEvent e) {
                String str = textField.getText().trim().toLowerCase();
                for(int i=0; i<serverTable.getRowCount(); i++){
                    String ssttrr = serverTable.getValueAt(i, 0).toString();
                    if(ssttrr.trim().toLowerCase().startsWith(str)){
                        serverTable.changeSelection(i, 0, false, false);
                        break;
                    }
                }
            }

        });

        serverTable = new JTable(tableModel);
        serverTable.setPreferredScrollableViewportSize(new Dimension(500, 70));        
        clientTable = new JTable(new MyModel(new Vector(),names));
        clientTable.setSelectionBackground(Color.BLUE);       

        serverTable.addPropertyChangeListener("dodatNoviRed", new PropertyChangeListener(){
            public void propertyChange(PropertyChangeEvent evt) {
                int row = ((Integer) evt.getNewValue()).intValue();    
                MyModel clientModel = (MyModel)clientTable.getModel();
                MyModel serverModel = (MyModel)serverTable.getModel();
                clientModel.getData().add(serverModel.getData().get(row));
                clientTable.tableChanged(null);
            }            
        });

//      Create the scroll pane and add the table to it.
        JScrollPane serverTableScrollPane = new JScrollPane(serverTable);
        JScrollPane clientTableScrollPane = new JScrollPane(clientTable);

//      Add the scroll pane to this panel.
        add(serverTableScrollPane);
        add(textField);
        add(clientTableScrollPane);
        add(copyButton);
        add(addRowBtn);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(copyButton)) {
            for(int i = 0; i < serverTable.getRowCount(); i ++)
                for(int j = 0; j < serverTable.getColumnCount(); j ++)
                    clientTable.setValueAt(serverTable.getValueAt(i, j), i, j);
        }
        /*if (e.getSource().equals(sortButton)) {
TableSorter sorter = new TableSorter(new TableMaker());
clientTable = new JTable(sorter);
sorter.setTableHeader(clientTable.getTableHeader());
}
         */

    }

    public void tableChanged(TableModelEvent e) {
        int row = e.getFirstRow();
        int column = e.getColumn();
        model = (TableModel)e.getSource();
        String columnName = model.getColumnName(column);
        Object changedData = model.getValueAt(row, column);


        /*
         * npr. na klijentu stavimo promenljivu lastLogOut, tipa Date(), koja dobija
         * odgovarajucu vrednost svaki put kada se user izloguje sa servera.
         * To uporedjuje sa serverovom promenljivom lastDataChange, i ako je lastDataChange
         * obavljen nakon poslednjeg logOuta, user uzima podatke sa servera. Ako ne, user
         * pravi tabelu iz sopstvenog TableModel-a koji bi nekako trebalo serijalizovati i
         * chuvati na lokalnoj mashini.
         *
         * Ako je user kojim sluchajem konektovan, a u medjuvremenu dodje do promene podataka,
         * server odmah shalje fix poruke do klijenta. Sve se obavlja kroz uporedjivanje
         * pomenuta 2 datuma.
         */

    }

    /**
     * Create the GUI and show it. For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    private static void createAndShowGUI() {
//      Make sure we have nice window decorations.
        JFrame.setDefaultLookAndFeelDecorated(true);

//      Create and set up the window.
        JFrame frame = new JFrame("SimpleTableDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//      Create and set up the content pane.
        TableMaker newContentPane = new TableMaker();
        newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);

//      Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
//      Schedule a job for the event-dispatching thread:
//      creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }

    class MyModel extends AbstractTableModel{
        private Vector data = new Vector();
        private Vector names = new Vector();;

        public MyModel(Vector data, Vector names){
            this.data = data;
            this.names = names;            
        }

        public int getColumnCount() {
            return names.size();
        }

        public int getRowCount() {
            return data.size();
        }       

        public String getColumnName(int column) {
            return names.get(column).toString();
        }
       
        public Object getValueAt(int row, int column) {
            Vector oneRow = (Vector)data.get(row);
            return oneRow.get(column).toString();
        }

       
        public Vector getData() {
            return data;
        }
    }

}


Pozzz

[Ovu poruku je menjao Toxter dana 01.02.2007. u 20:04 GMT+1]
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

trodon
Nebojsa Brindic
CTO
Bincode Entertainment
Beograd

Član broj: 14115
Poruke: 219
212.200.177.*

Sajt: bincode-entertainment.com


Profil

icon Re: pretrazivanje JTable-a - hitno!!!!13.02.2007. u 10:44 - pre 209 meseci
Toxter, samo da ti se zahvalim, poprilichno si imao udela u mojoj juche upisanoj 10 - ki. Hvala ti josh jednom...
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
*.ADSL.neobee.net.



+6 Profil

icon Re: pretrazivanje JTable-a - hitno!!!!13.02.2007. u 17:15 - pre 209 meseci
No problemo.
Drago mi je ako sam pomogao
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

[es] :: Java :: pretrazivanje JTable-a - hitno!!!!

[ Pregleda: 3266 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.