Problema em Coluna de uma JTable

0 respostas
W

Bom dia pessoal.
Meu problema é que eu tenho uma jtable com colunas possuindo dois tipos de componentes
na primeira linha possuo um JCheckBox e no restante JRadioButtons dentro de JPanel,
porém o JCheckBox só esta permitindo que uma coluna fique selecionada, desta forma quando
seleciono outra coluna ele desmarca as outra selecionadas...
Aí vai o Render e o Editor e o Modelo

class LancamentoEditorTeste extends DefaultCellEditor {
		
		JPanel panel=null;
		public LancamentoEditorTeste(JCheckBox checkBox) {
			super(checkBox);
		}

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

			//As colunas de 0 a 2 são apenas descritivas
			//apenas a linha 0 deve possuir JCheckBox
			if ((row == 0) && (column > 2)) {
				JCheckBox lancar = new JCheckBox("teste",false);
				return lancar;
			}
			//o resto deve possuir JRadioButton
			  else if(((row > 0) && (column > 2)))
					{
					    JPanel panel=new JPanel();
					    panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
						JRadioButton radio=new JRadioButton();
						JRadioButton radio1=new JRadioButton();
						panel.add(radio);
						panel.add(radio1);
						
					}


				return panel;

			

		}

class CheckBoxRenderer  implements TableCellRenderer {
	
	public Component getTableCellRendererComponent(JTable table, Object value,
			boolean isSelected, boolean hasFocus, int row, int column) {
		JPanel panel=new JPanel();
		panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
		if ((row == 0) && (column > 2)) {
			JCheckBox lancar = new JCheckBox("teste", false);
			return lancar;
		}
			else if(((row > 0) && (column > 2)))
				{
					panel=new JPanel();
					panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
					JRadioButton radio=new JRadioButton();
					JRadioButton radio1=new JRadioButton();
					panel.add(radio);
					panel.add(radio1);
					
				}
		

			return panel;
		
	}
}


import javax.swing.table.AbstractTableModel;

public class FrequenciaTableModel extends AbstractTableModel {

    private Object[][] matrix;
    private Object[] columnNames;

	public FrequenciaTableModel(Object[][] matrix,Object[] columnNames ) {
		if (matrix == null)
			throw new IllegalArgumentException("Matriz inválida!");
		else if(columnNames == null)
			throw new IllegalArgumentException("Coluna Names inválido!");
		
		this.matrix = matrix;
		this.columnNames=columnNames;
	}

	public int getColumnCount() {
		return matrix[0].length;
	}

	public int getRowCount() {
		return matrix.length;
	}

	public Object getValueAt(int row, int col) {
		return matrix[row][col];
	}

	public boolean isCellEditable(int row, int col) {
		if(col<3)
			return false;
		else
			return true;		
	}

	public void setValueAt(Object value, int row, int col) {
		matrix[row][col] = (Object) value;
	}
	public Class<?> getColumnClass(int col) {
		if(col<3)
		{
			return Object.class;
		}
		else
		{
			return Boolean.class;
		}

	}

	public void setValue(int row, int col, Object value) {
		matrix[row][col] = value;
		fireTableRowsUpdated(row, col);
	}

	@Override
    public String getColumnName(int col) {
        return (String) columnNames[col];
    }

}

obrigada pela atenção....

Criado 3 de dezembro de 2008
Respostas 0
Participantes 1