# in JTable eine Zeile färben



## shAGGie (19. Aug 2008)

ich habe folgendes problem,

ich habe eine jtable und möchte nur eine zeile färben, nicht das klassische problem wie man jede ungerade zeile anders färbt, es geht hier darum eben nur eine zeile zu färben um sie zu markieren, aber ohne mit der maus rauf zu klicken.

es muss doch möglich sein ohne großen aufwand und ohne eine cellrenderer classe einfach nur ne row zu färben

DANKE!


----------



## Marco13 (19. Aug 2008)

Willst du sie färben oder auswählen? (Dass sie, wenn sie ausgewählt ist, evtl. anders gefärbt ist, hat mit der Frage nichts zu tun)

Färben: Mit CellRenderer
Auswählen: table.getSelectionModel().setSelectionInterval(row,row);


----------



## shAGGie (19. Aug 2008)

ne will sie seperate von aussen färben. ohne auswahl ...

wie macht man das mit nem cellrenderer das is das problem ... ich blick da nich wirklich durch.

man muss sich das so vorstellen,
ich habe ein server und einene client programmiert. es handelt sich hierbei um eine art quiz software mit buzzern. beim server melden sich die quiz teilnehmer an und werdne dann in einer table dargestellt. der server gibt nun ne 5 sekündige buzzing zeit vor in der zeit buzzen alle die die antwort für eine vomn menshcne gestellt frage haben , der der als erste gebuzzt hat soll dann in der jtable im server markiert weren damit der mensch der am server steht sieht wer sozusagen die frage beantworten soll... jeder client hat eine id anhand dieser wird der eintrag in dedr jtable identifiziert

hoffe das hat jetz einer verstandn


----------



## Marco13 (19. Aug 2008)

Grob wie hier beim Beispielrenderer: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#renderer


```
public class ColorRenderer extends DefaultTableCellRenderer {

    public Component getTableCellRendererComponent(
                            JTable table, Object object,
                            boolean isSelected, boolean hasFocus,
                            int row, int column) 
    {
        JComponent component = super.getTableCellRendererComponent(table, object, isSelected, hasFocus, row, column);
        if (hatDenBuzzerGedrückt(object))
        {
            component.setBackground(Color.RED);
        }
        return component;
    }
```


----------



## shAGGie (20. Aug 2008)

jo das is zwar schön, aber da liegt mein problem. die if abfrage

hier mal mein quellcode der zu einer entscheidung führen soll, hier mal ein paar ausschnitte die für die findung und die markierung wichtgi sind. ich hjoffe daraus kann man was zaubern ...

die id dient zur identifikation des clients der als erster gebuzzt hat.



```
package de.deutscherv.bund.buzzsem.server;

import java.util.ArrayList;
import java.util.List;

public class TimeRecording{
	
	private static TimeRecording instance;
	private List<Integer> list = new ArrayList<Integer>();
	
	public static TimeRecording getInstance(){
		if (instance == null) instance = new TimeRecording();
		return instance;
	}
	
	public TimeRecording(){}
		
	public void setFastest(int id){
		list.add(id);
	}
	
	public int getFastest(){		
		if(list.isEmpty() == false){
			int i = list.get(0); 
			list.clear();
			return i;
		}
		return 1000;
	}
}
```


```
btn_buzzstart.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
        new Thread(){
	public void run(){
	    try {
	        new Thread(){
	            public void run(){
		countdown();
	            }
	        }.start();
	        buzzing = true;
	        Thread.sleep(5000);
	        buzzing = false;
	        highlight(tr.getFastest());
	    } catch (Exception e1) {
	        e1.printStackTrace();
	    }
	}
        }.start();
    }			
});

public void highlight(int id){
    if(id == 1000){
        System.out.println("keiner hat gebuzzt");
    }else{
        for(int j=0;j<dtm.getRowCount();j++){
            if(String.valueOf(id).equals((dtm.getValueAt(j,0).toString()))){
            
                System.out.println("der herr mit der id "+id + " war der erste!");
    
            }			
        }
    }
}
```


----------



## shAGGie (20. Aug 2008)

http://forums.sun.com/thread.jspa?messageID=4124661#4124661

hier gibts ne bessere lösung einfach die jtable übeschreiben geht einfacher ...


----------

