Java e Banco de Dados?

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.
		}
	}

Oque são esses métodos ?
e.getSource() == component?
Não entendi muito bem

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?

2 curtidas

Sim a linha de 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();
						}
					}}
			});
1 curtida

Mais como eu vou fazer a baixa?! Para que serve o Point???

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
1 curtida

Meu Deus eu programo a tempos como eu não sabia essa do Point, incrível! Obrigado por responder amigo!

No caso a baixa passaria o Id selecionado na cláusula where, oque permitiria fazer a baixa? :slight_smile:

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.

String codigo = jtable.getValueAt(jtable.getSelectedRow(), 1).toString();

1 curtida