Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [java]problemi renderer

    Ho applicato un cellRenderer ad una table e non capisco perchè per una tabella di 3 colonne il renderer viene "richiamato" un numero n di volte come se si generassero eventi....
    Qualcuno sa suggerire qualcosa?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Prova a postare il codice... così sarà + semplice per tutti trovare l'eventuale errore.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    [CODE]



    public class TableSimpleSelect extends JDialog
    {
    private void init()
    {

    table = new TableComponent(form);
    numPaginaCorr = 1;
    this.fillTable();
    table.setDialogSimpleSel(this);
    table.getTableHeader().addMouseListener(new HeaderMouseListener());
    CellHeaderRenderer tabRenderer = new CellHeaderRenderer();
    table.setDefaultRenderer(Object.class,tabRenderer) ;


    }


    public TableComponent getTable()
    {
    return this.table;
    }

    public int getSelectedTableRow()
    {
    return table.getSelectedRow();
    }


    private class HeaderMouseListener implements MouseListener
    {

    public void mouseClicked(MouseEvent e) {
    TableColumnModel columnModel = table.getColumnModel();
    int viewColumn = columnModel.getColumnIndexAtX(e.getX());
    System.out.println("n colonna " + viewColumn);


    }

    public void mousePressed(MouseEvent e) {

    }
    public void mouseExited(MouseEvent e) {

    }
    public void mouseEntered(MouseEvent e) {

    }
    public void mouseReleased(MouseEvent e) {

    }
    }

    class CellHeaderRenderer extends DefaultTableCellRenderer {
    //class CellRenderer extends JLabel implements TableCellRenderer{
    private TableCellRenderer defaultRenderer;

    public CellHeaderRenderer() {

    }
    public Component getTableCellRendererComponent(JTable table, Object value,
    boolean isSelected,
    boolean hasFocus,
    int row, int column)
    {
    FieldProps fp =(FieldProps)form.getBo().getMapSQL().get(colNames[column]);
    if(fp.isNumericType(fp.getSqlType()))
    {
    setHorizontalAlignment(RIGHT);
    }
    else if(fp.getSqlType() == fp.TYPE_STRING)
    {
    setHorizontalAlignment(LEFT);
    }
    else if(fp.getSqlType() == fp.TYPE_TIMESTAMP)
    {
    setHorizontalAlignment(CENTER);
    }


    System.out.println("RENDERER " + numRenderer);
    numRenderer++;
    if(value instanceof Component)
    return (Component)value;
    return this;

    }

    }

    }






    [\CODE]


    Ho tolto il codice che non dovrebbe influire.Comunque in sostanza è una dialog con una table e dei bottoni di navigazione.
    Ho dovuto implementare qui i renderer perchè non ho accesso al componente TableComponent che comunque estende JTable.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.