Article View: es.comp.lenguajes.java
Article #1028Jtable poner color a una celda por defecto II
From: Pedro
Date: Wed, 27 Sep 2006 16:00
Date: Wed, 27 Sep 2006 16:00
324 lines
14147 bytes
14147 bytes
Hola,
Con el post anterior al final he decidido hacer un cambio y es que en
vez de colorear la fila coloreo la celda.
Posteo parte del c�digo a ver que os parece y + adelante os comento el
error que me da.
En la clase interfaz
private final ColoresDirecciones coloresFilas = new ColoresDirecciones();
public class ColoresDirecciones implements TableCellRenderer
{
public Component getTableCellRendererComponent(JTable table, Object
value,
boolean isSelected, boolean hasFocus, int row, int column)
{
Component renderer =
DEFAULT_RENDERER.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
if (isSelected)
{
/* Para celdas seleccionadas:
seg�n el valor de 'value', pones el color, el tipo de
letra,
el formato, o incluso el tooltip.
*/
if
(!value.toString().equalsIgnoreCase(filaColumnaColor.toString()))
{
renderer.setBackground(table.getSelectionBackground());
renderer.setForeground(table.getSelectionForeground());
}
else
{
renderer.setBackground(c);
renderer.setForeground(table.getSelectionForeground());
}
}
else
{
/* Para celdas no seleccionadas:
seg�n el valor de 'value', pones el color, el tipo de
letra,
el formato, o incluso el tooltip.
*/
if
(value.toString().equalsIgnoreCase(filaColumnaColor.toString()))
{
renderer.setBackground(c);
renderer.setForeground(Color.LIGHT_GRAY);
}
else
{
renderer.setForeground(Color.BLACK);
renderer.setBackground(Color.WHITE);
}
}
return renderer;
}
/**
* Establece el c�digo de direcci�n o facturaci�n por defecto a
colorear
*
* @param filaColumnaColor Texto descriptivo del c�digo por defecto
*/
public void setFilaColumnaColor(String filaColumnaColor)
{
this.filaColumnaColor.delete(0, this.filaColumnaColor.length());
this.filaColumnaColor.append(filaColumnaColor);
this.filaColumnaColor.trimToSize();
}
/**
* Almacena el c�digo de direcci�n o facturaci�n por defecto para
colorear
*/
private StringBuilder filaColumnaColor = new StringBuilder();
private Color c = new Color(0,102,102);
public DefaultTableCellRenderer DEFAULT_RENDERER = new
DefaultTableCellRenderer();
}
ok
desde la clase en el que tengo el JTable que se llama Interfaz
en el constructor
jTableDirecciones.setDefaultRenderer(Object.class, coloresFilas);
y desde un m�todo
1� cogo de otra tabla el c�gigo de direcciones por defecto
cliente.setRsocdirFac((String)
jTableClientes.getValueAt(jTableClientes.getSelectedRow(), 4));
cliente.setDireccionFacturacion( (String)
jTableClientes.getValueAt(jTableClientes.getSelectedRow(), 8) );
2� miro si esta seleccionado el jToggle ya que si esta muestro la tabla
con
todas las direcciones del cliente
if ( jToggleButtonDirFac.isSelected() )
{
if( cliente.getNumeroDirecciones() > 1 ) //este if sobra xq
ya se por otro lado el numero de direcciones pero bueno :)
{
try
{
// B�squeda de direcciones por nif
modeloDirecciones.buscarDirecciones((String)jTableClientes.getValueAt(jTableClientes.getSelectedRow(),
1),
modoConexion);
initColumnSizes(jTableDirecciones);
jTableDirecciones.setRowSelectionInterval(0,0);
jDialogDirecciones.setTitle(TPV + "-Direcciones
facturaci�n cliente");
// lololo
jDialogDirecciones.setName("Factura");
//aqui le paso el c�digo de la direcci�n para que me colorea la celda
coloresFilas.setFilaColumnaColor(cliente.getRsocdirFac());
jDialogDirecciones.setVisible(true);
}
bueno hasta aqui de puta madre funciona todo correctamente
pero claro .... algo ten�a que fallar
y es que si el cliente tiene 3 direccioens no hay problema pero hay
clientes que tienen 100 direcc. por ejemplo
mi asombro es que en cuanto empiezo a mover el JScrollPane para arriba y
para abajo no me hace el refresco correctamente se queda la aplicaci�n
medio pillada y me larga esto que os pongo
Si has llegado hasta aqu� 1000 gracias, bueno te pongo el error.
la l�nea que me marca del error es esta :
if (value.toString().equalsIgnoreCase(filaColumnaColor.toString())) de
la clase ColoresDirecciones
Exception occurred during event dispatching:
java.lang.NullPointerException
at
es.titania.tpv.ColoresDirecciones.getTableCellRendererComponent(ColoresDirecciones.java:70)
at javax.swing.JTable.prepareRenderer(JTable.java:3928)
at
javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2072)
at
javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1974)
at
javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1897)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
at javax.swing.JComponent.paintComponent(JComponent.java:742)
at javax.swing.JComponent.paint(JComponent.java:1005)
at
javax.swing.JViewport.paintViewDoubleBuffered(JViewport.java:1670)
at javax.swing.JViewport.paintView(JViewport.java:1646)
at javax.swing.JViewport.windowBlitPaint(JViewport.java:1541)
at javax.swing.JViewport.setViewPosition(JViewport.java:1098)
at
javax.swing.plaf.basic.BasicScrollPaneUI$Handler.vsbStateChanged(BasicScrollPaneUI.java:818)
at
javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:807)
at
javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:348)
at
javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:285)
at
javax.swing.DefaultBoundedRangeModel.setValue(DefaultBoundedRangeModel.java:151)
at javax.swing.JScrollBar.setValue(JScrollBar.java:441)
at
javax.swing.plaf.basic.BasicScrollBarUI$TrackListener.setValueFrom(BasicScrollBarUI.java:1143)
at
javax.swing.plaf.basic.BasicScrollBarUI$TrackListener.mouseDragged(BasicScrollBarUI.java:1080)
at java.awt.Component.processMouseMotionEvent(Component.java:5536)
at
javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3144)
at java.awt.Component.processEvent(Component.java:5257)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:3909)
at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1778)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
at java.awt.Dialog$1.run(Dialog.java:517)
at java.awt.Dialog$2.run(Dialog.java:545)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:543)
at java.awt.Component.show(Component.java:1300)
at java.awt.Component.setVisible(Component.java:1253)
at
es.titania.tpv.Interfaz.jButtonClientesAceptarActionPerformed(Interfaz.java:6030)
at es.titania.tpv.Interfaz.access$8900(Interfaz.java:71)
at es.titania.tpv.Interfaz$22.actionPerformed(Interfaz.java:2493)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1778)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
at java.awt.Dialog$1.run(Dialog.java:517)
at java.awt.Dialog$2.run(Dialog.java:545)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:543)
at java.awt.Component.show(Component.java:1300)
at java.awt.Component.setVisible(Component.java:1253)
at es.titania.tpv.Interfaz.buscarClientes(Interfaz.java:1536)
at es.titania.tpv.Interfaz.access$5000(Interfaz.java:71)
at es.titania.tpv.Interfaz$9.actionPerformed(Interfaz.java:1368)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at
java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1778)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Bueno ya ta acepto cualquier tipo de sugerencia o comentario..
Gracias y Saludos
Technical Details
Message-ID:
<efe74l$r4o177@cesio.mundo-r.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!news1.dtag.de!cesio.mundo-r.com!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Thread: 1116f3,2b1cdb8d26b7ef6f,start X-Google-Attributes: gid1116f3,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!news1.dtag.de!cesio.mundo-r.com!not-for-mail From: Pedro <Pedro@ddd.com> Newsgroups: es.comp.lenguajes.java Subject: Jtable poner color a una celda por defecto II Date: Wed, 27 Sep 2006 18:00:30 +0200 Organization: R Cable y Telecomunicaciones Lines: 324 Message-ID: <efe74l$r4o177@cesio.mundo-r.com> Reply-To: Pedro@ddd.com NNTP-Posting-Host: cm115140.red83-165.mundo-r.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.7.12) Gecko/20050915 X-Accept-Language: es, es-es, en-us, en