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

Add jCheckbox u jTable

[es] :: Java :: Add jCheckbox u jTable

[ Pregleda: 4163 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

patak_daca

Član broj: 72199
Poruke: 418
77.46.221.*



+1 Profil

icon Add jCheckbox u jTable02.11.2008. u 08:24 - pre 187 meseci
Kao što naslov kaže.

Tražio sam na netu, našao neke primere...ali mi nije jasno..

primer..

DefaultTableModel model = new DefaultTableModel();


model.addColumn("Izbor");
model.addColumn("Šifra naloga");
model.addColumn("JMBG");
model.addColumn("Ime");
model.addColumn("Prezime");



int i;

for (i=0; i<10; ++i)

{

model.addRow(new Object[]{new Boolean(false),i, i+1});


}

jTable1.setModel(model);


...

Ako neko zna kako.....

Hvala unapred!

Patak
 
Odgovor na temu

_Abraxas
myth

Član broj: 154070
Poruke: 61
194.106.175.*



Profil

icon Re: Add jCheckbox u jTable02.11.2008. u 15:55 - pre 187 meseci
Mozes pokusati nesto ovako:
Code:

JCheckBox chk = new JCheckBox();
TableColumn t1 = tabela.getColumnModel().getColumn(1);
t1.setCellEditor(new DefaultCellEditor(chk));

tabela je tipa JTable, a parametar metoda getColumn je broj kolone gde zelis da ti se nalazi check box.

P.S. Moja preporuka ti je da kada radis sa tabelom nasledjujes klasu DefaultTableModel. Npr., ovako nesto:

Code:

public class ProizvodListModel extends DefaultTableModel
{
    String[] zaglavlje = {"Sifra proizvoda", "Naziv proizvoda", "Naziv proizvodjaca", "Tip proizvoda"};
    ArrayList<Proizvod> listaProizvoda = new ArrayList<Proizvod>();
    public ArrayList<TipProizvoda> listaTipaProizvoda = new ArrayList<TipProizvoda>();
 

    @Override
    public int getColumnCount() {
        return zaglavlje.length;
    }

    @Override
    public String getColumnName(int column) {
        return zaglavlje[column];
    }

    @Override
    public int getRowCount() {
        try
        {
            return listaProizvoda.size();
        }
        catch(Exception e)
        {
          //  e.printStackTrace();
        }
        return 0;
    }

    @Override
    public Object getValueAt(int row, int column) 
    {
        return listaProizvoda.get(row).vratiPodatke().get(column);
    }

    @Override
    public void setValueAt(Object aValue, int row, int column) 
    {
        Proizvod proizvod = listaProizvoda.get(row);
        int opcija = column;
        switch(opcija)
        {
            case 0:
                proizvod.setSifraProizvoda((String)aValue);
                break;
            case 1:
                proizvod.setNazivProizvoda((String)aValue);
                break;
            case 2:
                proizvod.setNazivProizvodjaca((String)aValue);
                break;
            case 3:
                proizvod.setTipProizvoda((TipProizvoda)aValue);
                break;
        }
        fireTableCellUpdated(row, column);
    }

    @Override
    public boolean isCellEditable(int row, int column) {
        return true;
    }


Na ovaj nacin mozes postici neku fleksibilnost za dalje izmene ili slicno. :)

[Ovu poruku je menjao _Abraxas dana 03.11.2008. u 02:23 GMT+1]

[Ovu poruku je menjao _Abraxas dana 03.11.2008. u 02:24 GMT+1]
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
79.101.64.*



+1 Profil

icon Re: Add jCheckbox u jTable02.11.2008. u 17:27 - pre 187 meseci
Probao, dodao code...

DefaultTableModel model = new DefaultTableModel();


model.addColumn("Izbor");
model.addColumn("Šifra naloga");
model.addColumn("JMBG");
model.addColumn("Ime");
model.addColumn("Prezime");


model.getColumnClass(0).getClass();

int i;

for (i=0; i<10; ++i)

{

model.addRow(new Object[]{((Boolean) false).booleanValue(),i, i+1});


}

jTable1.getColumnModel().getColumn(0);
jTable1.getColumnModel().getColumn(0).setCellEditor(new CheckBoxCellEditor());

jTable1.setModel(model);



ali nista...

ako negde gresim...


 
Odgovor na temu

_Abraxas
myth

Član broj: 154070
Poruke: 61
194.106.175.*



Profil

icon Re: Add jCheckbox u jTable03.11.2008. u 01:19 - pre 187 meseci
Ahhh, izvini, ja gore nisam napisao sta je chk. Parametar chk je tipa JCheckBox.
Znaci umesto new CheckBoxCellEditor(), napisi new JCheckBox(), pa probaj. :)
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
79.101.45.*



+1 Profil

icon Re: Add jCheckbox u jTable03.11.2008. u 06:32 - pre 187 meseci
Prijavi mi grešku.....


DefaultTableModel model = new DefaultTableModel();


model.addColumn("Izbor");
model.addColumn("Šifra naloga");
model.addColumn("JMBG");
model.addColumn("Ime");
model.addColumn("Prezime");




int i;

for (i=0; i<10; ++i)

{

model.addRow(new Object[]{((Boolean) false).booleanValue(),i, i+1});


}

JCheckBox chk = new JCheckBox();
jTable1.getColumnModel().getColumn(0);
jTable1.getColumnModel().getColumn(0).setCellEditor((TableCellEditor) new JCheckBox());

jTable2.setModel(model);




...


greška je ..

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JCheckBox

gde li samo grešim...
 
Odgovor na temu

Chobicus
Pancevo

Član broj: 28286
Poruke: 135
77.247.200.*

ICQ: 31049018


+12 Profil

icon Re: Add jCheckbox u jTable03.11.2008. u 08:16 - pre 187 meseci
Mislim da je dovoljno da iz TableModel-a iz metode getColumnClass vratiš Boolean za kolonu u kojoj hoćeš checkbox.
Pogledaj:
http://java.sun.com/docs/books.../uiswing/components/table.html
deo na strani sa podnaslovom "Concepts: Editors and Renderers".
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
79.101.45.*



+1 Profil

icon Re: Add jCheckbox u jTable03.11.2008. u 12:40 - pre 187 meseci
Chobicus ,

jel možeš da mi daš neki primer...

Patak
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
79.101.45.*



+1 Profil

icon Re: Add jCheckbox u jTable04.11.2008. u 06:41 - pre 187 meseci
...da li neko zna ......
 
Odgovor na temu

Chobicus
Pancevo

Član broj: 28286
Poruke: 135
77.247.200.*

ICQ: 31049018


+12 Profil

icon Re: Add jCheckbox u jTable04.11.2008. u 08:13 - pre 187 meseci
http://java.sun.com/docs/books.../src/components/TableDemo.java

Pogledaj deo koda

Code:
/*
         * JTable uses this method to determine the default renderer/
         * editor for each cell.  If we didn't implement this method,
         * then the last column would contain text ("true"/"false"),
         * rather than a check box.
         */
        public Class getColumnClass(int c) {
            return getValueAt(0, c).getClass();
        }


Poziv ove metode na 5. koloni iz primera ce vratiti klasu Boolean i swing ce da je izrenderuje kao "check box".
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
79.101.45.*



+1 Profil

icon Re: Add jCheckbox u jTable04.11.2008. u 11:43 - pre 187 meseci
Chobicus...

jel možeš da mi kažeš gde da ubacim taj code u moj code...

Patak
 
Odgovor na temu

_Abraxas
myth

Član broj: 154070
Poruke: 61
*.rcub.bg.ac.yu.



Profil

icon Re: Add jCheckbox u jTable04.11.2008. u 12:26 - pre 187 meseci
Citat:
patak_daca: Prijavi mi grešku.....


DefaultTableModel model = new DefaultTableModel();


model.addColumn("Izbor");
model.addColumn("Šifra naloga");
model.addColumn("JMBG");
model.addColumn("Ime");
model.addColumn("Prezime");




int i;

for (i=0; i<10; ++i)

{

model.addRow(new Object[]{((Boolean) false).booleanValue(),i, i+1});


}

JCheckBox chk = new JCheckBox();
jTable1.getColumnModel().getColumn(0);
jTable1.getColumnModel().getColumn(0).setCellEditor((TableCellEditor) new JCheckBox());


jTable2.setModel(model);




...


greška je ..

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JCheckBox

gde li samo grešim...


Redove koje sam ti oznacio crvenim slovima zameni sledecim kodom:
Code:

JCheckBox chk = new JCheckBox();
TableColumn t1 = tabela.getColumnModel().getColumn(1);
t1.setCellEditor(new DefaultCellEditor(chk));
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
79.101.45.*



+1 Profil

icon Re: Add jCheckbox u jTable04.11.2008. u 12:50 - pre 187 meseci
Ispravio sam...

I dalje umesto JChekbox ispisuje true , false..

Please help me....
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
79.101.84.*



+1 Profil

icon Re: Add jCheckbox u jTable04.11.2008. u 17:55 - pre 187 meseci
....
_Abraxas....help.....
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
79.101.84.*



+1 Profil

icon Re: Add jCheckbox u jTable04.11.2008. u 18:06 - pre 187 meseci
...rešio sam...

dodao sam

jTable1.getColumnModel().getColumn(0).setCellRenderer(jTable1.getDefaultRenderer(Boolean.class));


..to je to..

Hvala _Abraxas, Chobicus....

Patak
 
Odgovor na temu

[es] :: Java :: Add jCheckbox u jTable

[ Pregleda: 4163 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

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