Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168

    [JAVA] Problema colorare righe JTable

    Salve ragazzi,
    ho un problema con una JTable. Ho ridefinito il DefaultTableCellRenderer con relativo metodo getCellRenderer per colorare delle righe ogni qualvolta in una riga trovo una determinata stringa. Il risultato che ho ottenuto è che rimane colorata solo l'ultima.

    Esempio: ricerco la parola " pippo " all'interno della JTable....
    Se su 10 righe la parola pippo è presente tre volte, io voglio evidenziare tutte e tre le righe. Invece il mio risultato è che mi colora solo l'ultima .


    GRAZIE

    e


    AIUTOOOOOOOOOOOOOOOOO...


  2. #2
    Ciao...

    ci potresti postare il codice?

    tnks

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    codice:
    public class MyRenderer extends DefaultTableCellRenderer {
    	//private Font font = new Font("Courier", Font.BOLD, 12);
    
    	public MyRenderer()
    	{
    		super();
    		this.setEnabled(true);
    		this.setFocusable(true);
    		
    	}
    	public Component getTableCellRendererComponent(JTable table, Object value, 
    													boolean isSelected, boolean hasFocus, int row, int column) 
    	{
    
    		
    		if(isSelected == true)
    		{	
    			setForeground(Color.GREEN);
    		}
    		
    		return super.getTableCellRendererComponent(
    				table, value, isSelected, hasFocus, row, column);
    	}
    }


    codice:
    public class MyTable  extends JTable {
    	private TableCellRenderer customRenderer = new MyRenderer();
    	private int targetRow;
    	public int irowSel = -1;
    	public boolean bFound = false;
    	private static final int DEFAULT_COLUMN_PADDING = 5;
    
    	public MyTable(int targetRow) {
    		this.targetRow = targetRow;
    		this.setDefaultRenderer(Color.class,customRenderer);
    		this.setCellSelectionEnabled(true);
    		this.setColumnSelectionAllowed(false);
    		this.setRowSelectionAllowed(true);
    		//this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    		this.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    		this.setFocusable(true);
    		
    		autoResizeTable ( this, true, 10);
    		
    		
    	}
    
    
    
    	public TableCellRenderer getCellRenderer(int r, int c) {
    		
    		if(irowSel == r)
    		{
    		           return customRenderer;
    		}
    		else
    		{
    		           return super.getCellRenderer(r, c);
    		} 	}
    Il mio problema è evidenziato in arancione....Cioè: le righe vengono colorate in modo esatto. Ma poichè allo show del frame lui ripassa in getCellRenderer "iRowsSel" è l'ultimo che ha impostato. Quindi vedo colorata solo l'ultima trovata....

    Grazie


  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    168
    Ragazzi nessuno mi aiuta?

    UFFA........


    VVoVe:

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.