Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 2.081 pregleda

Najnovija ↓

JTable resize kolona 14.02.2008. u 12:00 · pre 227 meseci #1
Zdravo,

zanima me da li je moguce da se prilikom resize-ovanja kolone tabele ne vrsi stalno repaint-ovanje celija, vec da se to odlozi za kraj resize-a tj. kad se pusti mis, nesto kao sto je slucaj sa kontrolom JSplitPane i propertiem setContinuousLayout(boolean). U pitanju je jre1.5.0.7.

Hvala.

p.s. pronasao sam sledece:

void javax.swing.table.JTableHeader.setUpdateTableInRealTime(boolean flag)
Obsolete as of Java 2 platform v1.3. Real time repaints, in response to column dragging or resizing, are now unconditional.

ali izgleda da ovo vise ne funkcionise.
Re: JTable resize kolona 15.02.2008. u 10:51 · pre 227 meseci #3
Za one koje ova tema zanima evo resenja:

Code:

JTableHeader header = new JTableHeader() {
 
    private static final long serialVersionUID = 1L;
 
    public void setResizingColumn(TableColumn aColumn)
    {
        super.setResizingColumn(aColumn);
        if (getResizingColumn() == null) {
            refreshHeavyRenderer();
            getTable().repaint();
        }
        else {
            TableColumnModel cmodel = this.getColumnModel();
            for (int i = 0; i < cmodel.getColumnCount(); i++) {
                cmodel.getColumn(i).setCellRenderer(
                    new DefaultTableCellRenderer());
            }
        }
    }
};


Poenta je override-ovanje table header-a i detektovanje da li je u toku resize kolone. Ako je resize u toku setuje se default-ni cell renderer koji ne opterecuje gui preterano prilikom repaint-a. Kada se resize zavrsi vraca se zahtevan renderer i radi se repaint.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme