Boas…
Seguinte estou criando meu modelo de Jtable usando/seguindo alguns modelos conseguidos aqui mesmo no fórum,
porém minha dificuldade está em fazer o alinhamento de colunas.
Tenho a coluna valor; Poderia me informar alguns exemplos para deixar seu conteúdo alinhado à direita com formato moeda?
Obrigado.
código:
[code]public class JtabelaM extends AbstractTableModel{
private String [] nomeColuna = new String []
{“Código”,“Materiais”,“Quantidade”,“Valor”,“Tota”,“Data”, “Nº Nota Fiscal”};
private List linhas;
private Produtos_ObrasADO pro = new Produtos_ObrasADO();
/* Cria um TableModel vazio. */
public JtabelaM() {
try {
linhas = pro.ListarPO();
} catch (ClassNotFoundException ex) {
Logger.getLogger(JtabelaM.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(JtabelaM.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
Logger.getLogger(JtabelaM.class.getName()).log(Level.SEVERE, null, ex);
}
}
/* Cria um TableModel carregado com
* a lista de materiais especificada. */
public JtabelaM(List<ProdutoObra> listaDeProdutos) {
linhas = new ArrayList<ProdutoObra> (listaDeProdutos);
}
@Override
public int getRowCount() {
// Retorna o tamanho da lista
return linhas.size();
}
@Override
public int getColumnCount() {
// Está retornando o tamanho do array "colunas".
return nomeColuna.length;
}
/* Retorna o nome da coluna no índice especificado.
* Este método é usado pela JTable para saber o texto do cabeçalho. */
@Override
public String getColumnName(int columnIndex) {
// Retorna o conteúdo do Array que possui o nome das colunas
// no índice especificado.
return nomeColuna[columnIndex];
};
/* Retorna a classe dos elementos da coluna especificada.
* Este método é usado pela JTable na hora de definir o editor da célula. */
@Override
public Class<?> getColumnClass(int columnIndex) {
// Retorna a classe referente a coluna especificada.
// Aqui é feito um switch para verificar qual é a coluna
// e retornar o tipo adequado. As colunas são as mesmas
// que foram especificadas no array "colunas".
switch (columnIndex) {
case 0: // Primeira coluna é o codigo, que é uma int.
return Integer.class;
case 1: // Segunda coluna é o Material, que é uma String..
return String.class;
case 2: // Terceira coluna é a Quantidade de material,
return String.class;
case 3: // Quarta coluna é a mensalidade, um double.
return String.class;
case 4:
return String.class;
case 5:
return String.class;
case 6:
return String.class;
default:
// Se o índice da coluna não for válido, lança um
// IndexOutOfBoundsException (Exceção de índice fora dos limites).
// Não foi necessário verificar se o índice da linha é inválido,
// pois o próprio ArrayList lança a exceção caso seja inválido.
throw new IndexOutOfBoundsException("columnIndex out of bounds");
}
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// Pega o produto da linha especificada.
ProdutoObra aux = linhas.get(rowIndex);
// Retorna o campo referente a coluna especificada.
// Aqui é feito um switch para verificar qual é a coluna
// e retornar o campo adequado. As colunas são as mesmas
// que foram especificadas no array "colunas".
switch(columnIndex)
{
case 0:
return aux.getCodigo();
case 1:
return aux.getProduto();
case 2:
return aux.getQuantidade();
case 3:
return aux.getValor();
case 4:
return aux.getTotal();
case 5:
return aux.getDia()+"/"+aux.getMes()+"/"+aux.getAno();
case 6:
return aux.getNf();
default:
// Se o índice da coluna não for válido, lança um
// IndexOutOfBoundsException (Exceção de índice fora dos limites).
// Não foi necessário verificar se o índice da linha é inválido,
// pois o próprio ArrayList lança a exceção caso seja inválido.
throw new IndexOutOfBoundsException("columnIndex out of bounds");
}
}
/* Seta o valor da célula especificada
* pelos índices da linha e da coluna.
* Aqui ele está implementado para não fazer nada,
* até porque este table model não é editável. */
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {};
/* Retorna um valor booleano que define se a célula em questão
* pode ser editada ou não.
* Este método é utilizado pela JTable na hora de definir o editor da célula.
* Neste caso, estará sempre retornando false, não permitindo que nenhuma
* célula seja editada. */
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
}[/code]