Clicar em botão e Limpar os dados da tela, e confirmação para fechar a APP

2 respostas
andrewd

Boa noite pessoal, estou iniciando no mundo e java e tentando fazer o trabalho do meu professor, ele passou 8 passos, estou no 5 por enquanto que é esse:

As letras, d/e/f eu ainda não fiz e não estou conseguindo, alguém poderia me ajudar ?

no arquivo TelaCadastro, criei o método:

@Override
    public void actionPerformed(ActionEvent e) 
    {
        
        if (e.getSource() == botaoSalvar) 
        {
            JOptionPane.showMessageDialog(this, "Salvar os dados: " + textNome.getText() + " - " + textDescricao.getText() + " - " + textValorUnitario.getText() );
        } 
        else if (e.getSource() == botaoLimparDados) 
        {

        } 
        else if (e.getSource() == botaoSair) 
        {

        }
        
    }

botaoSair = pedir confirmação
botaoLimparDados = Limpar os dados dos 3 campos

Alguém pode me ajudar? O pegar dados depois eu vejo como faço, mas se alguém puder me adiantar algo eu já agradeceria.

Obrigado a todos

2 Respostas

S

Boa noite,

1º Não acho elegante você utilizar um actionPerformed para tratar mais de um evento. Eu crio um evento para cada botão que tenho na minha tela.

seuBotao.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					//Realizar a operação que você desejar
				}
			});

2º Letra D: Para limpar os campos da sua aplicação você pode chamar o método setText(""); do seus JTextField.

txtCodigo.setText("");

3º Letra E: O código abaixo exibe uma mensagem de dialogo que irá retornar um valor inteiro. Com isso basta você verificar na linha abaixo se o inteiro retornado corresponde ao valor do inteiro que será retornado ao clicar no botão Sim.

int resposta = JOptionPane.showConfirmDialog(null, "Deseja realmente fechar o programa ?", "Pergunta", JOptionPane.YES_NO_OPTION);
				if (resposta == JOptionPane.YES_OPTION) {
					System.exit(0);
				}

4º Letra F: Não sei se é bem isso que você deseja, mais eu encontrei aqui no GUJ uma classe onde ela permiti que só sejam informados números dentro do seu JTextField. Com ela basta ao você criar um JTextField você chamar o método setDocument passando a classe. Ex: setTextField.setDocument(new IntegerDocument(5)); O argumento passado nesse método é a quantidade de números cujo o campo poderá receber.

public class IntegerDocument extends FixedLengthDocument {  
    public IntegerDocument(int maxlen) {  
        super(maxlen);  
    }  
    
    public IntegerDocument(int maxlen, boolean upper) {
    	super(maxlen,upper);
    }
  
    @Override  
    public void insertString(int offset, String str, AttributeSet attr)  
            throws BadLocationException {  
        if (str == null)  
            return;  
          
        try {  
            Integer.parseInt(str);  
        } catch (Exception e) {  
            return;  
        }  
          
        super.insertString(offset, str, attr);  
    }  
}
d34d_d3v1l

strikezado resposta mais completa impossível!
Parabens!

Só uma alternativa, na letra F
poderia usar um JFormattedTextField e criar uma máscara com “#”!
x]

Abraços

Criado 14 de novembro de 2011
Ultima resposta 14 de nov. de 2011
Respostas 2
Participantes 3