Bueno, lo que estoy intentando hacer deberia ser relativamente sencillo, pero por una de esas cosas de la vida, llevo horas peleandome y no hay manera, y seguro q es un tonteria asi q acudo al inconmensurable conocimiento de MV.
La cosa es sencilla, hacer una tabla 10x10 q cuando clicke en una celda cambie el color de fondo de dicha celda a rojo. Capturar el evento sobre la celda ya lo hago correctamente ya que lo compruebo poniendo un chivato en el evento mouseClicked.
El problema viene cuando me hago un DefaultTableCellRenderer, q es lo q dicen en absolutamente todos los sitios en internet, aqui directamente no pasa nada.
Pongo el código a ver si veis por donde puede pinchar:
Clase main, solo inicia la tablapublic class Main {
---public static void main(String[] args) {
------new pruebaJTable();
------System.out.println("Esto se acabo");
---}
}
Clase prueba jTable, aqui creo el Jtable y capturo los clicks sobre celdasclass pruebaJTable extends JFrame{
---public pruebaJTable() {
------final JTable jlbHelloWorld = new JTable(10, 10);
------add(jlbHelloWorld);
------setSize(500, 500);
------setVisible(true);
------jlbHelloWorld.addMouseListener(new MouseAdapter()
------{
-------@Override
------public void mouseClicked(MouseEvent e)
------{
---------int fila = jlbHelloWorld.rowAtPoint(e.getPoint());
---------int columna = jlbHelloWorld.columnAtPoint(e.getPoint());
---------if ((fila > -1) && (columna > -1))
---------{
------------jlbHelloWorld.setDefaultRenderer(String.class , new Mirender());
------------System.out.println("Fila:" + fila + " Columna: " + columna); <--Chivato va OK
---------}
------}
---});
---}
}
Render propio, jamás se llega a ejecutar la funcion getTableCellRendererComponent no se porqueclass Mirender extends DefaultTableCellRenderer implements TableCellRenderer {
---int row_render;
---int column_render;
----@Override
---public Component getTableCellRendererComponent(JTable table,
------Object value,
------boolean isSelected,
------boolean hasFocus,
------int row,
------int column)
---{
------System.out.println("Nunca llego a leer esto"); <--- Nunca llego a leer este chivato
------Component comp = super.getTableCellRendererComponent (table, value, isSelected, hasFocus, row_render, column_render);
------comp.setBackground(Color.red);
------comp.setForeground(Color.red);
------return comp;
---}
}
RPV: Hacer click en una celda y q se pinte de rojo.