Coloriage d'une ligne d'un jtable automatiquement sans la sélectionner

noussaannousa Messages postés 2 Date d'inscription mercredi 12 mai 2010 Statut Membre Dernière intervention 26 mai 2010 - 25 mai 2010 à 23:16
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 26 mai 2010 à 07:13
j'ai essayé ces deux classes mais encore ça va pas marché :(


import java.awt.Color;
import java.awt.Component;

import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;

public class MonCellRenderer extends DefaultTableCellRenderer
{
int ligne,colonne;
MonCellRenderer(int ligne,int colonne)
{
System.out.println("zeee");
this.ligne=ligne;
this.colonne=colonne;
}

public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{

Component cell = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
if (row ligne/* && column colonne*/)
cell.setBackground(Color.BLUE);
else
cell.setBackground(Color.WHITE);
return cell;
}
}




import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.HeadlessException;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

public class JTableColoringMadeSimple extends JFrame implements ActionListener {

JTable myTable = null;
Random r = new Random();

public JTableColoringMadeSimple() throws HeadlessException {
Object[][] o = new Object[10][10];
String[] columnNames = new String[10];
for(int i = 0; i <10; i++) {
columnNames[i] = String.valueOf(i);
for(int j = 0; j <10; j++) {
o[i][j] = i*j;
}
}

TableModel tblModel = new DefaultTableModel(o, columnNames);
myTable = new JTable(tblModel);
// myTable.setDefaultRenderer(Object.class, new MonCellRenderer(3,6));
myTable.setSelectionBackground(Color.PINK);

JButton myButton = new JButton("Color a row");
myButton.addActionListener(this);

add(new JScrollPane(myTable));
add(myButton, BorderLayout.PAGE_END);

setPreferredSize(new Dimension(400, 300));
}

public void actionPerformed(ActionEvent e) {

int rnd = r.nextInt(10);
// myTable.setRowSelectionInterval(rnd, rnd);
// System.out.println(rnd);
myTable.setDefaultRenderer(Object.class, new MonCellRenderer(rnd,rnd));
myTable.updateUI();
}

public static void main(String[] args) {
Runnable runnable = new Runnable(){
public void run() {
JTableColoringMadeSimple t = new JTableColoringMadeSimple();
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t.pack();
t.setVisible(true);
}
};
SwingUtilities.invokeLater(runnable);
}
}

1 réponse

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
26 mai 2010 à 07:13
Pas bonjour à toi aussi,

C'est quoi le problème au juste ? Tu ne poses même pas de question, tu ne dis même pas ce que tu cherches à faire avec ce code, comment veux-tu qu'on t'aide : on n'est pas devin, on ne peux pas deviner ce que tu veux obtenir comme résultat.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Rejoignez-nous