JCheckBox in JTable

fastfiler

Mitglied
hi, ich bin gerade dabei einen CellRenderer für eine JTable zu basteln und hab dabei ein Problem. In einer Spalte in der nur 1 oder 0 als String drin steht möcht ich ne schicke JComboBox haben. Jetzt hab ich folgendes gecoded ich hab jedoch nur ein Problem ich kann irgendwie den Wert nicht greifen bzw. abprüfen.

Code:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.table.*;

public class CheckBoxCellRenderer implements TableCellRenderer {
    
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        try{
            JCheckBox box = new JCheckBox();
            
            box.setOpaque(true);
            Border b = BorderFactory.createEmptyBorder(1, 1, 1, 1);
            box.setBorder(b);
            box.setForeground(table.getForeground());
            box.setBackground(table.getBackground());
            
                 column = table.convertColumnIndexToModel(column);
                if (column == 9 && (String)value == "1"){
                box.setSelected(true);
                return box;
            }
        }catch(ClassCastException e){
            // e.printStackTrace();
        }
        return null;
    }

wenn ich bei diesem Statement "if (column == 9 && (String)value == "1")" nur auf column == 9 prüfe setzt er mit die checkbox, will ich beide bedinungen abprüfugen passiert garnix.

weiss jmd an was das liegen kann?

mfg & thx
 
versuchs mal mit
Code:
 if (column == 9 && value.equals("1"))
das klappte bei mir, du könntest auch deine Klasse von JCheckBock erben lassen, dann müsstest du nicht immer eine neue Instanz von von Jcheckbox erzeugen
Code:
class checkRenderer extends JCheckBox implements TableCellRenderer{

	public Component getTableCellRendererComponent(JTable arg0, Object arg1, boolean arg2, boolean arg3, int arg4, int arg5) {
		super.setOpaque(true);
		arg5 = arg0.convertColumnIndexToModel(arg5);
        if (arg5 == 1 && arg1.equals("1")){
        super.setSelected(true);
        return this;
        }
		return null;
	}
mfg elmato
 
Zurück