Pessoal eu programei um sistema de parcela, uma telinha, bom eu queria que quando o usuário desse um clique na linha ele setava a parcela como paga e assim por diante, as que não forem clicadas ainda continuaram como pendentes. Alguém pode me ajudar?
Por enquanto eu tenho isso!
Bloco de Citação
private void jbAdicionarParcelasActionPerformed(java.awt.event.ActionEvent evt) {
String parcelas;
String valores;
parcelas = jtfNumeroParcelas.getText();
valores = jtfValorTitulo.getText();
if (parcelas.equals("") || valores.equals("")) {
JOptionPane.showMessageDialog(null, “OS CAMPOS DE QUANTIDADE DE PARCELAS E”
"VALOR DO TITULO DEVEM ESTAR PREENCHIDOS CORRETAMENTE! ");
} else {
int valor_Unico = Integer.parseInt(jtfValorTitulo.getText());
int numero = Integer.parseInt(jtfNumeroParcelas.getText());
int recebe_numer;
int recebe;
int valor;
DateTimeFormatter formato = DateTimeFormatter.ofPattern(“dd/MM/yyyy”);
LocalDate dataVenc = LocalDate.parse(dccDataDigitada.getText(), formato);
while ((dataVenc.getDayOfWeek() == DayOfWeek.SUNDAY)
|| (dataVenc.getDayOfWeek() == DayOfWeek.SATURDAY)) {
dataVenc = dataVenc.plus(Period.ofDays(1));
}
for (int i = 0; i < numero; i++) {
tabela = (DefaultTableModel) jtbParcelamento.getModel();
tabela.addRow(new Object[]{
valor = (i + 1),
dataVenc,
recebe_numer = valor_Unico / numero
});
dataVenc = dataVenc.plus(Period.ofMonths(1));
while ((dataVenc.getDayOfWeek() == DayOfWeek.SUNDAY)
|| (dataVenc.getDayOfWeek() == DayOfWeek.SATURDAY)) {
dataVenc = dataVenc.plus(Period.ofDays(1));
}
}
}
}
Olá, eu usei algo parecido para trocar a máscara de formatação de um campo, se clicar no radio button cpf, no campo era colocado a mascara para digitar cpf, se clicasse no radio button cnpj, ai colocaria a mascara para cnpj no mesmo campo, acredito que pode dar certo ai também.
Na declaração da classe coloque o implements ActionListener e implemente o método actionPerformed que ele vai obrigar e tente fazer desta maneira
public void actionPerformed(ActionEvent e) {
if (e.getSource() == component){ //este componente deve ser o objeto da linha que foi clicada.
//seta a parcela como paga.
}
}
Este método identifica a ação de clique do mouse, ai o getSource() é para verificar se o que foi clicado é realmente o componente que vc esta esperando, no caso da linha que vc mencionou, a propósito, que linha é esta, uma JTable?
Entendi, então nesse caso, vc pode usar este método abaixo. Pode declarar ele logo abaixo da declaração da sua JTable
jtable.addMouseListener(new MouseAdapter(){
private Point p;
private int row;
private int col;
public void mouseClicked(MouseEvent e){
// quantidade de cliques que precisa ser dado para acionar a função
if (e.getClickCount() == 2){
p = e.getPoint();
row = jtable.rowAtPoint(p);
col = jtable.columnAtPoint(p);
try{
// recupera o código na coluna 1 da linha selecionada e atribui a variável String codigo
String codigo = jtable.getValueAt(jtable.getSelectedRow(), 1).toString();
// aqui executa a lógica que precisa para baixar a parcela
}catch(Exception f){
f.printStackTrace();
}
}}
});
Se você analisar o código postado, verá que ele usa a coordenada do mouse (o objeto Point) pra descobrir em qual linha e coluna ocorreu o duplo-clique.
p = e.getPoint(); // coordenada
row = jtable.rowAtPoint(p); // linha
col = jtable.columnAtPoint(p); // coluna
Exatamente, ou qualquer outra informação que tenha na linha selecionada que possa ser usado no seu sql para dar a baixa, para isso basta alterar o número da posição da coluna, caso tenha mais de uma informação, basta duplicar essa linha também, e só alterar a posição.