Ajuda com OOP

Boa Tarde!! Preciso de uma ajudinha!

Seguinte, eu tenho 2 classes, a classe Login que é meu GUI e a classe Entrar. Na classe Login fiz toda a interface e tem 2 Jtextfield,
um pra senha e outro pra usuario. Na classe entrar, quero fazer o metodo que vai verificar esse usuario e senha, so que estou com dificuldade
de chamar essa senha e usuario na classe entrar…

alguem poderia me ajudar?

Você não chama o usuário e a senha na classe Entrar, mas, instancia um objeto da classe entrar, na classe Login e, passa para ela os parâmetros.
Isto pode ser feito de várias formas, no construtor da classe Entrar, através de getters ou mesmo através da chamada direta às variáveis correspondentes na classe Entrar, embora esta última seja menos recomendada.

drsmachado

vlw pela resposta! gostaria de fazer com get e set. Eu tinha feito uma outra classe com os get e set mas nao deu certo, e tentei so com 2
classes e tb nao estou conseguindo.

poderia me dar uma luz?

classe login;

package Login;
import CadastroUsuario.CadastroUsuario;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class Login {
	
	private JFrame login = new JFrame("Invetário - Login");
	private JPanel mypanel = new JPanel();
	private JLabel usuario = new JLabel("Usuario:");
	private JLabel senha = new JLabel("Senha:");
	private JTextField user = new JTextField(); 
	private JPasswordField pass = new JPasswordField();
	private JButton entrar = new JButton("Entrar");
	private JButton sair = new JButton("Sair");	
	private JButton cadastrar = new JButton("Novo Cadastro"); 
	private String user1;
	private String pass1;
	
	public Login() {
		//definir propriedades do jframe;
		login.setVisible(true);
		login.setBounds(0, 0, 240,200);
		login.setLayout(null);
		login.setLocationRelativeTo(null);
		login.setResizable(false);
		
		//definir propriedades do jpanel;
		mypanel.setVisible(true);
		mypanel.setBounds(0, 0, 240, 200);
		mypanel.setLayout(null);
	

		//definir propriedades do jlabel usuario;
		usuario.setBounds(20, 30, 50, 10);
		
		//definir propriedades do jlabel senha;
		senha.setBounds(20,61,50,10);
		
		//definir propriedades do jtextfield usuario;
		user.setBounds(75, 26, 130, 22);
		
		//definir propriedades do jtextfield senha;
		pass.setBounds(75, 55, 130, 22);
		
		//definir propriedades do botao entrar;
		entrar.setBounds(20,90,90,25);
		
		//definir propriedades do botao sair;
		sair.setBounds(115,90,90,25);
	
		//definir propriedades do botao novo cadastro;
		cadastrar.setBounds(20,120,185,25);
	
		//adicionar panel no frame e os outros itens no panel;
		login.add(mypanel);
		mypanel.add(usuario);
		mypanel.add(senha);
		mypanel.add(user);
		mypanel.add(pass);
		mypanel.add(entrar);
		mypanel.add(sair);
		mypanel.add(cadastrar);
		
		
		//fechar frame
		login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		//acoes botao novo cadastro;
		cadastrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				new CadastroUsuario();
				
			}
		});
		
		//acoes botao sair;
		sair.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				login.dispose();				
			}
		});
		
		//acoes botao entrar
		entrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				user1 = user.getText();
				pass1 = user.getText();		
				new Entrar();	
				
			}
		});
	}
			
}

a classe entrar esta vazia.

quero acessar as variaveis user1 e pass1 que recebem os dados digitados nos Jtextfield na classe entrar que vai verificar os dados.
quanto a meneira que eu fiz a classe Login, nao sei se eh a melhor maneira, senao for, pode falar!!

obrigado

Está mais ou menos, porém, você deve trocar o campo senha para JPasswordField, que retorna um vetor de caracteres.

Na classe Entrar, declares duas variáveis do tipo String, usuario e senha.
Se estiver usando Netbeans, ALT + INSERT e selecione getter e setter. Se for Eclipse, vá em source > generate getter e setter.

blz, ja criei duas String na classe entrar, String pass e String user
criei os get e set, uso o eclipse.

mas agora como chamo isso na classe login?

e me diz o q posso melhorar na minha gui tb, vc disse q tava +/-

vlww

    private JTextField user = new JTextField();   
    private JPasswordField pass = new JPasswordField();  

e

pass1 = user.getText(); 

Você precisa alterar para

pass1 = new String(pass.getPassword());

Após instanciar o objeto de entrar

Entrar entrar = new Entrar();
entrar.setUser(user1);
entrar.setPass(pass1);
boolean ok = entrar.metodoQueVerifica();
//faz o que precisa

drsmachado, nao consegui!!

Claro, e quer que eu adivinhe o que aconteceu, qual foi o erro e como corrigir, sem postar nada?

Sério, eu ri. Desculpem rs.

drsmachado, tp, eu tenho dificuldades em montar isso.

tem como fazer um exemplo pra mim me basear? com 3 classes, a classe gui, a classe construtora e a classe que tem o metodo que vai veririca os dados digitados na classe gui. Pode ser qq exemplo, so pra mim poder ver e fazer no meu exercicio!

vlw

[quote=sunsite]drsmachado, tp, eu tenho dificuldades em montar isso.

tem como fazer um exemplo pra mim me basear? com 3 classes, a classe gui, a classe construtora e a classe que tem o metodo que vai veririca os dados digitados na classe gui. Pode ser qq exemplo, so pra mim poder ver e fazer no meu exercicio!

vlw[/quote]

package visualizacao;
 
 
Class Login extends JFrame
{
 
private JTextField jTextFieldUsuario;
private JPasswordField jpfSenha;
 
// construtor
 
public Login()
{
 
Aqui voce tem tudo referente a janela de login, como características da janela. Exemplo:
título, tamanho etc.
 
}
 
// método que pega o que o usuario digitou dentro da caixa de texto jTextFieldUsuario e retorna.
 
public String getUsuario(){
 
 return jTextFieldUsuario.getText(); retornando o que o usuario digitou na caixa de texto.
 
}
 
public String getSenha(){ // método que retorna uma String, nesse caso ta retornando o que o usuario
 
digitou dentro da caixa de senha.
 
 
return new String(jpfSenha.getPassword()); /* getPassword() pega o que o usuario digitou dentro da
 
caixa de senha JPasswordField, converte em String, pois o que a caixa JPasswordField retorna, é um
vetor de caracteres, então você, precisa converter em String. E retorna o que ele digitou dentro da
caixa de JPasswordField.*/
 
}
 
// agora aqui é tratado o evento da classe Login
 
public void actionPerformed(ActionEvent ae)
 
if(ae.getSource()== jbuttonEntrar){
 
Explicação: se o usuario clicou no botão entrar da janela de login.
 
Cria-se um objeto da classe Entrar:
 
Entrar entrar = new Entrar(); // você deve criar esse objeto, para poder invocar o método validaUsuario, que você deve criar na classse Entrar, pois é nesse método que você vai validar o usuario.
 
Nesse caso, presumo que a sua classe Entrar esteja em outro pacote!
 
Criando o objeto da classe Entrar, você invoca o método validaUsuario(), da classe Entrar, passando
dois argumentos da classe Login, que é justamente o que o usuario digitou no jTextFieldUsuario, referente ao nome de usuario, e passa também o que ele digitou na caixa de senha jpfSenha. Da seguinte
maneira:
 
Observe que voce vai usar o objeto que voce crio da classe Entrar, para invocar o método que está
nessa classe, chamado validaUsuario().
 
if(controle.validaUsuario(getUsuario(), getSenha())) { // observe que aqui voce passou, o usuario
 
e senha digitados nos respectivos JTextField e JPasswordField, para o método validaUsuario da classe
 
Entrar.
 
 
}
 
// Agora vem a classe Entrar
 
 
 
package controle;
 
import javax.swing.JOptionPane;
 
import visualizacao.Login;
 
 
 
public class Entrar
{
   
public boolean validaUsuario(String usuario, String senha) /* método validaUsuario recebe dois argumentos, passados da classe Login, que são os dados, que o usuario digitou dentro
da caixa de texto, e dentro da caixa de senha.*/
 
 
 
Agora aqui você faz o tratamento referente a validação
 
 
// Dica estude camadas, pois voce tem que organizar seus pacotes, exemplo
 
pacote visualizacao: aqui voce vai colocar todas suas classes de GUI
pacote controle: aqui voce coloca as classes que controlam as suas GUI
pacote principal: aqui voce coloca uma classe contendo um método main, responsavel por executar
pacote modelo: aqui voce coloca a classe Usuario, classe contendo atributos nomeUsuario, codUsuario, senhaUsuario, e seus método gets e sets.
pacote persistencia : aqui voce coloca sua classe que faz conexao com o banco de dados, e classe UsuarioDAO
 
Espero ter ajudado
                                                               
    {