Newsgroup: it.comp.java
Titolo: Problemi di implementazione della AbstractTableModel() con DefaultTableCellRenderer()

Ho creato una tabella per la visualizzazione di dati.Poi ho avuto la
necessita di colorare le celle in base a certi parametri.
Leggendo le post ho visto che la funzione da usare e
getTableCellRendererComponent però ad usarla insieme a
AbstractTableModel() non sono capace. Sarebbe meglio usare solo
DefaultTableCellRenderer()? Vi posto il codice:
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
public class Matrix extends DefaultTableCellRenderer{
	int rowData[][];
 	Object podatki[][];
 	String columnNames[];
 	JTable mainTable;
 	public Component getTableCellRendererComponent(JTable
mainTable,Object f,int row, int column) {
 	  	if (podatki[rowData[row][column]][5].equals("1")){
 	  		  setBackground(Color.red);
 	        }else{if(podatki[rowData[row][column]][9].equals("true")){
 	  		  setBackground(Color.green);
 	  	  }else{if(podatki[rowData[row][column]][9].equals("false")){
 	  		  setBackground(Color.yellow);
 	  	  }else{setBackground(Color.black);
 	  	  }
 	  	  }
 	  	     getBackground();
 	  	    }return this;
 	     }
 	  	public void narisi(int rowDat[][],String vrste[],Object
podatk[][]) {
 this.podatki=podatk;
      this.rowData=rowDat;
      this.columnNames=vrste;
	 }
 	public void dajMaterjal(String date){}
	   final TableModel mainModel = new AbstractTableModel() {
	  public int getColumnCount() {
         return columnNames.length-1;
       }
       public String getColumnName(int column) {
         return columnNames[column+1];
       }
       public int getRowCount() {
         return rowData.length;
       }
       public Object getValueAt(int row, int column) {
    	   if (podatki[rowData[row][column]][6].toString().length()>10){
			return
"<html>"+podatki[rowData[row][column]][6].toString().substring(0,10)+
	"<br>"+podatki[rowData[row][column]][5].toString()+
	"<br>"+podatki[rowData[row][column]][1].toString();
    	   }
 else return "<html>"+podatki[rowData[row][column]][6].toString()+
             "<br>"+podatki[rowData[row][column]][5].toString()+
	     "<br>"+podatki[rowData[row][column]][1].toString();
    	   }
     };
       public void teci() {
    	   JTable mainTable = new JTable(mainModel){
    	 public String getToolTipText(MouseEvent e)
    	  	{
      	     Point p = e.getPoint();
      	     String materjal="<html>";
      	     int row = rowAtPoint(p);
       	     int column = columnAtPoint(p);
       	     int stev=rowData[row][column];
      	     if (stev == 0)
      	         return null;
      	     else{
      	    	   	 while (podatki[stev][8].equals(podatki[stev+1][8])){
	 materjal=materjal+"<br>"+podatki[stev][9].toString()+
		" "+podatki[stev][10].toString()+
 		" "+podatki[stev][11].toString()+
  	 	" "+podatki[stev][12].toString();stev++;
      	     }
      	    	 return materjal;            }
    	  	}    	 };
    	 for(int i=0;i<mainTable.getColumnCount();i++){
mainTable.getColumnModel().getColumn(i).setPreferredWidth(100);
    	 }
    	 mainTable.getColorModel()
    	 mainTable.setRowHeight(50);
         mainTable.getToolTipText();
    	 mainTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
mainTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         JScrollPane scrollPane = new JScrollPane(mainTable);
         JFrame frame = new JFrame("Fixed Column Table");
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.add(scrollPane, BorderLayout.CENTER);
         frame.setSize(1000, 1500);
         frame.setVisible(true);  
         } 
    }

 ha scritto nel messaggio 
news:1128419241.8...@g44g2000cwa.googlegroups.com...
Ho creato una tabella per la visualizzazione di dati.Poi ho avuto la
necessita di colorare le celle in base a certi parametri.
Leggendo le post ho visto che la funzione da usare e
getTableCellRendererComponent perň ad usarla insieme a


 schrieb im Newsbeitrag 
news:1128419241.8...@g44g2000cwa.googlegroups.com...
