importjava.awt.Component;importjava.text.NumberFormat;importjava.util.Locale;importjavax.swing.AbstractCellEditor;importjavax.swing.JFormattedTextField;importjavax.swing.JTable;importjavax.swing.table.TableCellEditor;publicclassMoedaCellEditorextendsAbstractCellEditorimplementsTableCellEditor{/** * classe para editar a celula com formato de moeda */privatestaticfinallongserialVersionUID=1L;privateJFormattedTextFieldmoeda=null;privateNumberFormatformatter=NumberFormat.getCurrencyInstance(newLocale("pt","BR"));privateJFormattedTextFieldgetCell(){if(moeda==null)moeda=newJFormattedTextField(formatter);returnmoeda;}publicComponentgetTableCellEditorComponent(JTabletable,Objectvalue,booleanisSelected,introw,intcolumn){getCell().setValue(value);returngetCell();}publicObjectgetCellEditorValue(){returngetCell().getValue();}}
importjava.awt.Component;importjava.text.NumberFormat;importjava.util.Locale;importjavax.swing.JLabel;importjavax.swing.JTable;importjavax.swing.SwingConstants;importjavax.swing.table.TableCellRenderer;publicclassMoedaCellRenderextendsJLabelimplementsTableCellRenderer{/** * classe para mostrar a celula com formato de moeda */privatestaticfinallongserialVersionUID=1L;privateJLabelcell=null;privateNumberFormatformatter=NumberFormat.getCurrencyInstance(newLocale("pt","BR"));// Locale.getDefault() privateJLabelgetCell(){if(cell==null)cell=newJLabel();returncell;}publicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,booleanisSelected,booleanhasFocus,introw,intcolumn){if(value!=null){getCell().setText(formatter.format(value));getCell().setHorizontalAlignment(SwingConstants.RIGHT);}elsegetCell().setText("");returngetCell();}}
E onde você muda as cores das linhas no moedaCellRender?
Se você quer sempre deixar a JTable zebrada, dá uma olhada no padrão Decorator.
Resplandes
Segue a resposta, amigo ViniGodoy segui suas orientações em um poste meu anterior, vlw...
importjava.awt.Color;importjava.awt.Component;importjava.text.NumberFormat;importjava.util.Locale;importjavax.swing.JLabel;importjavax.swing.JTable;importjavax.swing.SwingConstants;importjavax.swing.table.DefaultTableCellRenderer;importjavax.swing.table.TableCellRenderer;publicclassMoedaCellRenderextendsJLabelimplementsTableCellRenderer{privateColorwhiteColor=newColor(254,254,254);privateColoralternateColor=newColor(237,243,253);privateColorselectedColor=newColor(61,128,223);/** * classe para mostrar a celula com formato de moeda */privatestaticfinallongserialVersionUID=1L;privateJLabelcell=null;privateNumberFormatformatter=NumberFormat.getCurrencyInstance(newLocale("pt","BR"));// Locale.getDefault()privateJLabelgetCell(){if(cell==null)cell=newJLabel();returncell;}publicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,booleanselected,booleanhasFocus,introw,intcolumn){Colorbg;if(value!=null){bg=selectedColor;getCell().setText(formatter.format(value));getCell().setHorizontalAlignment(SwingConstants.RIGHT);getCell().setOpaque(true);getCell().setBackground(bg);getCell().setForeground(selected?Color.white:Color.black);getCell().setVisible(true);if(hasFocus){bg=selectedColor;setBackground(bg);setForeground(selected?Color.white:Color.black);}elseif(!selected)bg=(row%2==0?alternateColor:whiteColor);elsebg=selectedColor;getCell().setBackground(bg);getCell().setForeground(selected?Color.white:Color.black);}elsegetCell().setText("");returngetCell();}}