Możliwość ustalania szerokości kolumn tabeli i koloorowanie

0

Mam model tabelki:

class ModelTabelki extends AbstractTableModel
        {
                Object[][] data;
                Object[] naglowek;
                public ModelTabelki(Object[][] dat, Object[] nag)
                       {
                        data = dat;
                        naglowek = nag;
                       }
                public int getColumnCount()
                       {
                        if(naglowek!=null)
                        return naglowek.length;
                        return 0;
                       }
                public int getRowCount()
                       {
                        if(data!=null)
                        return data.length;
                        return 0;
                       }
                public String getColumnName(int col)
                       {
                       return naglowek[col].toString();
                       }
               public boolean isCellEditable(int wiersz,int kolumna)            //Metoda zawijajaca wiersze w kolumnie tabeli
                        {
                         return false;
                        }
               // js=setPrefferedSize(new Dimension(400, 300));                 //NIby tm sie wywoluje
                public Object getValueAt(int row, int col) {
                return data[row][col];
            }
        }

Wywołuje ją tak:

String[] nag={"Nr:","Data przyjęcia:","Przyjął","Serwisuje","Data realizacji","Apteka:","Status:","Cel:","Rozwiązanie:"};

String[][] dane=new String[zlecenia.size()][10]; //wiersze, kolumny
       for (int i=0;i<zlecenia.size();i++)
            for (int j=0;j<9;j++)
            {
             dane[i][0]=zlecenia.get(i)._numer;
             dane[i][1]=zlecenia.get(i)._data_przyjecia;
             dane[i][2]=zlecenia.get(i)._przyjal;
             dane[i][3]=zlecenia.get(i)._serwisuje;
             dane[i][4]=zlecenia.get(i)._data_realizacji;
             dane[i][5]=zlecenia.get(i)._apteka;
             dane[i][6]=zlecenia.get(i)._status;
             dane[i][7]=zlecenia.get(i)._cel;
             dane[i][8]=zlecenia.get(i)._rozwiazanie;
            }

ModelTabelki model = new ModelTabelki( dane, nag );
      table = new JTable(model);
      js = new JScrollPane( table );
      js.setBounds(10,150, 760, 180);   //szerokosc, długość
      panel.add(js);

Czy jest jakiś sposób abym mógł ustalać szerokości kolumn?
Jak moge pokolorować co 2gi rząd?

Dzięki za każdą podpowiedz ;)

0
  1. Ja ustawiam szerokość kolumn tak:
   width=0;
    //pętla po kolumnach
         kolumna.setPrefferedWidth(k);
         width+=k;
   tabela.doLayout();
   Dimension d=tabela.getPreferredScrollableViewportSize();
   d.width=width;
   tabela.setPreferredScrollableViewportSize(d);
  1. Napisz klasę
class CellRenderer implements TableCellRenderer
{   
    private Color selectedOdd=new Color(240,159,24);
    private Color selectedEven=new Color(24,159,240);
    private Color unselectedOdd=new Color(160,106,16);
    private Color unselectedEven=new Color(16,106,160);
    //------------------------
    public Component getTableCellRendererComponent(JTable t,Object value,boolean selected,boolean hasFocus,int row,int col)
    {
        JLabel header=new JLabel(tutaj to co chcesz wyświetlić);
        header.setOpaque(true);
        Font font=header.getFont();
        Font newFont=new Font("monospaced",Font.PLAIN,font.getSize());
        header.setFont(newFont);
        if(selected)
        {
            if(row%2==0)
                header.setBackground(selectedEven);
            else
               header.setBackground(selectedOdd);

        }
        else
        {
            if(row%2==0)
                header.setBackground(unselectedEven);
            else
               header.setBackground(unselectedOdd);
        }
        return header;
    }
}

w konstruktorze tabeli

TableCellRenderer renderer=new TableCellRenderer();
//dla każdej kolumny
kolumna.setCellRenderer(renderer);
0

Niewiele z tego rozumiem. Nie masz możne jakiegoś przykładu działającego, to bym zaskoczył jak to działa ;/

0

Przeciez masz przyklad.
Polecam tutaj zajrzec: http://letmegooglethatforyou.com?q=how+to+use+jtables

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