Bom gente, estou desenvolvendo um novo componente de tabela e ja estou nos finalmentes, porém não consigo inserir um JChekBox no JTable :?: :x, e por mais que eu procure no forum não vi niguem que fez isso numa classe onde ela extende a JTable, se aguem tiver alguma solução, para mim basta conseguir colocar em todas as linhas da coluna 0 :lol:.
grato, segue abaixo código do _TblField
package MM_Package;
public class _TblField extends javax.swing.JTable {
private String Caption;
private Object[][] Dados;
private String DefaultHexBgColor;
private String DefaultHexFtColor;
private boolean DragDrop;
private boolean Editable;
private JHexToDec jHD = new JHexToDec();
private JTableRenderer jTR = new JTableRenderer();
private String Tag;
private String[] Titulos;
private String[] WidthCols;
public _TblField(){
super();
}
public String GetAllBgColor(){
return DefaultHexBgColor;
}
public String GetAllFtColor(){
return DefaultHexFtColor;
}
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 GetDragDrop(){
return DragDrop;
}
public boolean GetEditable(){
return Editable;
}
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(r);
}
public void SetAllBgColor(String sHexBgColor){
int[] iRGBColor;
javax.swing.JColorChooser cColor = new javax.swing.JColorChooser();
DefaultHexBgColor = sHexBgColor;
jHD.SetValor(sHexBgColor);
iRGBColor = jHD.GetValorDecimal();
cColor.setColor(iRGBColor[0], iRGBColor[1], iRGBColor[2]);
this.setDefaultRenderer(Object.class, jTR);
jTR.setBackground(cColor.getColor());
this.SetLista(Titulos, Dados);
}
public void SetAllFtColor(String sHexColor){
int[] iRGBColor;
javax.swing.JColorChooser cColor = new javax.swing.JColorChooser();
DefaultHexFtColor = sHexColor;
jHD.SetValor(sHexColor);
iRGBColor = jHD.GetValorDecimal();
cColor.setColor(iRGBColor[0], iRGBColor[1], iRGBColor[2]);
this.setDefaultRenderer(Object.class, jTR);
jTR.setForeground(cColor.getColor());
this.SetLista(Titulos, Dados);
}
public void SetCaption(String sTexto){
Caption = sTexto;
}
public void SetDragDrop(boolean bStatus){
DragDrop = bStatus;
this.getTableHeader().setReorderingAllowed(bStatus);
}
public void SetEditable(boolean sEditable){
Editable = sEditable;
if (sEditable==false){
javax.swing.table.DefaultTableModel DfModel = new javax.swing.table.DefaultTableModel(Dados, Titulos){
public boolean isCellEditable(int rowIndex, int mColIndex) {
return false;
}
};
this.setModel(DfModel);
}
else{
javax.swing.table.DefaultTableModel DfModel = new javax.swing.table.DefaultTableModel(Dados, Titulos);
this.setModel(DfModel);
}
}
public boolean GetSizableStateCols(){
return this.getTableHeader().getResizingAllowed();
}
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 SetOrder(){
Dados=QuickSort(Dados);
SetLista(Titulos,Dados);
}
public void SetOrder(int iCol){
Object[][] oOrdena =new Object[Dados.length][Dados[0].length] ;
int iInd=0;
int iIndY=0;
boolean bPassou=false;
for(iInd=0;iInd<oOrdena.length;iInd++){
for(iIndY=0;iIndY<oOrdena[iInd].length;iIndY++){
if (bPassou==false && iIndY==iCol){
oOrdena[iInd][0]=Dados[iInd][iIndY].toString();
bPassou=true;
}
else{
if (iIndY==0){
oOrdena[iInd][iCol]=Dados[iInd][iIndY].toString();
}
else{
oOrdena[iInd][iIndY]=Dados[iInd][iIndY].toString();
}
}
}
bPassou=false;
}
oOrdena=QuickSort(oOrdena);
for(iInd=0;iInd<oOrdena.length;iInd++){
for(iIndY=0;iIndY<oOrdena[iInd].length;iIndY++){
if (bPassou==false && iIndY==0){
Dados[iInd][iCol]=oOrdena[iInd][iIndY].toString();
bPassou=true;
}
else{
if (iIndY==iCol){
Dados[iInd][0]=oOrdena[iInd][iIndY].toString();
}
else{
Dados[iInd][iIndY]=oOrdena[iInd][iIndY].toString();
}
}
}
bPassou=false;
}
SetLista(Titulos,Dados);
}
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;
}
private Object[] QuickSort(Object[] oVetor){
java.util.Arrays.sort(oVetor);
return oVetor;
}
private Object[][] QuickSort(Object[][] oVetor){
Object[] oOrdena =new Object[oVetor.length] ;
int iInd=0;
int iIndY=0;
for(iInd=0;iInd<oOrdena.length;iInd++){
oOrdena[iInd]="";
}
for(iInd=0;iInd<oOrdena.length;iInd++){
for(iIndY=0;iIndY<oVetor[iInd].length;iIndY++){
oOrdena[iInd]=oOrdena[iInd].toString() + oVetor[iInd][iIndY].toString() + ";" ;
}
}
java.util.Arrays.sort(oOrdena);
for(iInd=0;iInd<oOrdena.length;iInd++){
for(iIndY=0;iIndY<oVetor[iInd].length;iIndY++){
oVetor[iInd][iIndY]=ImportData(oOrdena[iInd].toString(),iIndY+1);
}
}
return oVetor;
}
private String ImportData(String sVetor,long lPosicao){
int iInd;
long lPosiAtua;
int iContVal;
sVetor = sVetor.trim();
lPosiAtua = 1;
iContVal = 0;
for(iInd=1;iInd<=sVetor.length();iInd++){
if (String.valueOf(Mid(sVetor, iInd, 1)).equals(";")){
if(lPosiAtua == lPosicao){
return Mid(sVetor, iInd - iContVal, iContVal);
}
else{
lPosiAtua = lPosiAtua + 1;
iContVal = 0;
}
}
else{
iContVal = iContVal + 1;
}
}
return "";
}
private String Mid(String sTexto, int iInicio, int iQuantidade){
sTexto = sTexto.substring(iInicio - 1, (iInicio - 1) + iQuantidade);
return sTexto;
}
}