Bom Pessoal a história é um seguinte estou desenvolvendo um componente novo, Chama _TblField com uma série de funções que agilizam a programação.
o que eu queria era desenvolver mais uma função que colorisse as células consgui um código que faz isso mas quando tentei implementar no meu componente nada acontesse.
código que achei:
[code]package calculadorajava;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
/**
-
@author Ronald Tetsuo Miura
*/
public class Teste extends DefaultTableCellRenderer {
/** */
private Font fontePadrao = new Font("monospaced", Font.BOLD, 12);
/**
-
@see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable,
-
java.lang.Object, boolean, boolean, int, int)
*/
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){
Component c = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
c.setFont(this.fontePadrao);
c.setForeground(Color.green);
c.setBackground(Color.black);return c;
}
/**
-
@param args
*/
public static void main(String[] args) {
Vector header = new Vector();
header.add("Teste1");
header.add("Teste2");
header.add("Teste3");
header.add("Teste4");Vector data = new Vector();
for (int i = 0; i < 10; i++) {
Vector row = new Vector();
row.add("Teste1");
row.add("Teste2");
row.add("Teste3");
row.add("Teste4");
data.add(row);
}
JTable table = new JTable(new DefaultTableModel(data, header));
table.setDefaultRenderer(Object.class, new Teste());JFrame frame = new JFrame();
frame.getContentPane().add(table);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(640, 480);
frame.setVisible(true);
}
}[/code]
-
meu componente "_TblField"
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package MM_Package;
/**
*
-
@author Michel
*/
public class _TblField extends javax.swing.JTable {
private String Caption;
private Object[][] Dados;
private String Tag;
private String[] Titulos;
private String[] WidthCols;
public _TblField(){
super();
}
public String GetCaption(){
return Caption;
}
public Object[] GetDado(int iRow){
int iInd = 0;
Object[] sReturn = null;
if (Dados.length>0 && Dados[0].length>0){
for(iInd=0;iInd<=Dados.length-1;iInd++){
if (iInd==iRow){
sReturn = Dados[iInd];
return sReturn;
}
}
}
return sReturn;
}
public Object[][] GetDados(){
return Dados;
}
public Object[][] GetDados(int[] iRow){
int iInd = 0;
int iIndY = 0;
int iCountLines = 0;
Object[][] sRetorno = null;
if (Dados.length>0 && Dados[0].length>0){
Object[][] sMount = new Object[Dados.length][Dados[0].length];
for(iInd=0;iInd<=Dados.length-1;iInd++){
for(iIndY=0;iIndY<=iRow.length-1;iIndY++){
if (iInd==iRow[iIndY]){
sMount[iCountLines] = Dados[iInd];
iCountLines=iCountLines+1;
}
}
}
sRetorno = new Object[iCountLines][Dados[0].length];
for(iInd=0;iInd<=iCountLines-1;iInd++){
sRetorno[iInd]=sMount[iInd];
}
}
return sRetorno;
}
public boolean GetSizableStateCols(){
return this.getTableHeader().getResizingAllowed();
}
public int GetRows(){
return this.getRowCount();
}
public int GetSelectedRow(){
return this.getSelectedRow();
}
public int[] GetSelectedsRows(){
return this.getSelectedRows();
}
public String GetTag(){
return Tag;
}
public String[] GetTitulos(){
return Titulos;
}
public String[] GetWidthCols(){
return WidthCols;
}
public void SetAddDados(String[] sDados){
if (Dados[0].length == sDados.length){
Object[][] sMount = new String[Dados.length + 1][Dados[0].length];
int iMaxPriCasa = Dados.length - 1;
int iMaxSegCasa = Dados[0].length - 1;
int iIndX=0;
int iIndY=0;
for(iIndX=0;iIndX<=iMaxPriCasa;iIndX++){
for(iIndY=0;iIndY<=iMaxSegCasa;iIndY++){
sMount[iIndX][iIndY]=Dados[iIndX][iIndY];
}
}
for(iIndY=0;iIndY<=iMaxSegCasa;iIndY++){
sMount[sMount.length -1][iIndY]=sDados[iIndY];
}
Dados = sMount;
javax.swing.table.DefaultTableModel DfModel = new javax.swing.table.DefaultTableModel(sMount, Titulos);
this.setModel(DfModel);
}
}
public void SetAlignment(int iCol, int iAlignment){
javax.swing.table.DefaultTableCellRenderer r = new javax.swing.table.DefaultTableCellRenderer();
switch(iAlignment){
case 0:
r.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
break;
case 1:
r.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
break;
case 2:
r.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
break;
default:
r.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
}
this.getColumnModel().getColumn(iCol).setCellRenderer®;
}
public void SetCaption(String sTexto){
Caption = sTexto;
}
public void SetLista(String[] sTitulos, Object[][] sDados){
Titulos = sTitulos;
Dados = sDados;
javax.swing.table.DefaultTableModel DfModel = new javax.swing.table.DefaultTableModel(sDados, sTitulos);
this.setModel(DfModel);
}
public void SetRemoveRow(int iRow){
if(iRow<=(Dados.length-1) && iRow>=0){
Object[][] sMount = new String[Dados.length - 1][Dados[0].length];
int iMaxPriCasa = Dados.length - 1;
int iMaxSegCasa = Dados[0].length - 1;
int iIndX=0;
int iIndXAux=0;
int iIndY=0;
for(iIndX=0;iIndX<=iMaxPriCasa;iIndX++){
if (iIndX==iRow){
iIndXAux=iIndXAux - 1;
}
else{
for(iIndY=0;iIndY<=iMaxSegCasa;iIndY++){
sMount[iIndXAux][iIndY]=Dados[iIndX][iIndY];
}
}
iIndXAux=iIndXAux + 1;
}
Dados = sMount;
javax.swing.table.DefaultTableModel DfModel = new javax.swing.table.DefaultTableModel(sMount, Titulos);
this.setModel(DfModel);
}
}
public void SetSelectionByCell(){
this.setCellSelectionEnabled(true);
}
public void SetSelectionByMultiRow(){
this.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
}
public void SetSelectionByUniqueRow(){
this.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
}
public void SetSizableStateCols(boolean bStado){
this.getTableHeader().setResizingAllowed(bStado);
}
public void SetTag(String sTag){
Tag = sTag;
}
public void SetTitulos(String[] sTitulos){
if (Dados.length>0 && Dados[1].length>0){
javax.swing.table.DefaultTableModel DfModel = new javax.swing.table.DefaultTableModel(Dados, sTitulos);
this.setModel(DfModel);
}
}
public void SetWidthCol(String[] sColumns){
int iInd=0;
for(iInd=0;iInd<=sColumns.length-1;iInd++){
javax.swing.table.TableColumn column = this.getColumnModel().getColumn(iInd);
column.setPreferredWidth(Integer.parseInt(sColumns[iInd]));
}
WidthCols=sColumns;
}
}
[/code]
não sei mais o que fazer :thumbdown: alguém pode ajudar?