Tela de Usuario e Senha

3 respostas
ramaziero

Ola pessoal, sou novo por aqui e se estiver fazendo algo errado, por favor me avisem.
A duvida é : Tenho uma tela de Login, com Usuariio(JTextField), Senha(JPasswordField), botoes OK, e Cadastrar. Quando clico no botao OK quero q ele puxe as informaçoes digitadas em usuario e senha e POR ENQUANTO so exiba na console. O problema é q as variaveis de usuario e senha nao sao conhecidas dentro do codigo do OK. Oque fazer??

package MyFirstProgram;

import java.awt.Container;

public class Identifica extends JFrame {

JTextField usuario;
JPasswordField senha;

public static void main(String[] args) {
	
	new Identifica();

}

public Identifica() {	
	super("LOGIN E SENHA");
	
	Container c = getContentPane();
	
	setSize(357, 176);	
	setLocationRelativeTo(null);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	c.setLayout(null);
	
	JLabel lb_usuario = new JLabel("USUARIO:");
	lb_usuario.setFont(new Font("Tahoma", Font.BOLD, 20));
	lb_usuario.setBounds(39, 21, 104, 25);
	c.add(lb_usuario);
	
	JLabel lb_senha = new JLabel("SENHA:");
	lb_senha.setFont(new Font("Tahoma", Font.BOLD, 20));
	lb_senha.setBounds(39, 66, 92, 25);
	c.add(lb_senha);
	
	usuario = new JTextField();
	usuario.setBounds(165, 21, 86, 20);
	c.add(usuario);
	usuario.setColumns(10);
	usuario.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			
			//CODIGO DO USUARIO
			String u = new String(usuario.getText());
			
		}
	});
	
	senha = new JPasswordField();
	senha.setBounds(165, 66, 86, 20);
	c.add(senha);
	senha.addActionListener(new ActionListener() {
		
		public void actionPerformed(ActionEvent e) {
			
			//CODIGO DA SENHA
			String s = new String(senha.getPassword());
			
		}
	});
	
	JButton ok = new JButton("OK");
	ok.setBounds(273, 32, 58, 45);
	c.add(ok);
	
	JButton cadastrar = new JButton("CADASTRAR");
	cadastrar.setToolTipText("Cadastro de novos usuarios");
	cadastrar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			
			//CODIGO DO CADASTRAR
			
			
		}
	});
	
	cadastrar.setBounds(107, 102, 131, 23);
	c.add(cadastrar);
	setVisible(true);
	ok.addActionListener(new ActionListener() {
		
		public void actionPerformed(ActionEvent e) {
			
				//CODIGO DO OK
				System.out.println("usuario é: " + u + " senha é: " + s);               //AQUII ESTA O ERRO
		
		}

	});
}

}

3 Respostas

ErickRAR

As suas String s e u estão declaradas dentro do método actionPerformed(), então ela só existe ali dentro.
O correto seria declara-las fora do método, e no método você apenas atribui o valor, igual como é feito com seu JTextField e JPasswordField.

ramaziero

Poderia me dar um exemplo de como ficaria? Eu entendo muito mais visualmente, pq ai olho como ficou a resposta e trabalho em cima disso. Mas ja me deu uma ideia amigo ^^

Ruttmann

Coloque a declaração das suas Strings de senha e usuário junto com os atributos já declarados da sua classe. E dentro dos actionPerformed apenas atribua o valor a elas.

Isso é um problema de escopo. Suas strings só estão disponíveis dentro dos respectivos actionPerformed em que foram declaradas.

Criado 9 de julho de 2014
Ultima resposta 11 de jul. de 2014
Respostas 3
Participantes 3