Gbios,
Pelo que entendi, dá para usar ambas as soluções, sugeridas pelo nel e pelo charleston10.
Criei o código que acho que é mais ou menos o que você está usando. Para receber a senha, utilizei um componente do tipo JPasswordField, para não mostrar a senha digitada.
I - Uma primeira versão utilizando System.setProperty() e System.getProperty():
a) Classe que obtém o usuário e a senha:
Obs.: a classe Login não funciona de verdade, sempre retorna true no método autentica. Coloquei a classe Login junto da classe telaLogin, mas pode ficar também em outro arquivo.
[code]import javax.swing.;
import java.awt.;
import java.awt.event.*;
public class telaLogin extends JFrame{
private JTextField txtUsuario;
private JPasswordField txtSenha;
public telaLogin(){
Container c = getContentPane();
c.setLayout(new FlowLayout());
txtUsuario = new JTextField(10);
c.add(new JLabel("Usuario:"));
c.add(txtUsuario);
txtSenha = new JPasswordField(6);
txtSenha.setEchoChar('*');
c.add(new JLabel("Senha:"));
c.add(txtSenha);
JButton btAcessar = new JButton("Acessar");
btAcessar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btAcessarActionPerformed(e);
}
});
c.add(btAcessar);
setSize(200, 150);
setVisible(true);
}
private void btAcessarActionPerformed(java.awt.event.ActionEvent evt) {
Login autentica = new Login();
String senha = new String(txtSenha.getPassword());
autentica.setUsuario(txtUsuario.getText());
autentica.setSenha(senha);
if(autentica.autentica() == false){
JOptionPane.showMessageDialog(null,"Usuário ou Senha Inválidos !","ATENÇÃO",JOptionPane.WARNING_MESSAGE);
}else{
//AQUI UTILIZO O System.setProperty()
System.setProperty("login",txtUsuario.getText());
telaInicial principal = new telaInicial();
this.dispose();
principal.setVisible(true);
}
}
public static void main(String args[]){
telaLogin app = new telaLogin();
}
}
class Login{
public void setUsuario(String usuario){}
public void setSenha(String senha){}
public boolean autentica(){
return true;
}
}[/code]
b) Classe com a tela principal:
[code]import javax.swing.;
import java.awt.;
public class telaInicial extends JFrame{
public telaInicial(){
Container c = getContentPane();
c.setLayout(new FlowLayout());
//AQUI UTILIO O System.getProperty()
String usuario = System.getProperty("login","");
c.add(new JLabel(usuario));
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}[/code]
II - Solução utilizando variáveis estáticas:
a) Classe que obtém o usuário e a senha:
Obs.: na classe Login os atributos e métodos são estáticos.
[code]import javax.swing.;
import java.awt.;
import java.awt.event.*;
public class telaLogin extends JFrame{
private JTextField txtUsuario;
private JPasswordField txtSenha;
public telaLogin(){
Container c = getContentPane();
c.setLayout(new FlowLayout());
txtUsuario = new JTextField(10);
c.add(new JLabel("Usuario:"));
c.add(txtUsuario);
txtSenha = new JPasswordField(6);
txtSenha.setEchoChar('*');
c.add(new JLabel("Senha:"));
c.add(txtSenha);
JButton btAcessar = new JButton("Acessar");
btAcessar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btAcessarActionPerformed(e);
}
});
c.add(btAcessar);
setSize(200, 150);
setVisible(true);
}
private void btAcessarActionPerformed(java.awt.event.ActionEvent evt) {
Login autentica = new Login();
String senha = new String(txtSenha.getPassword());
autentica.setUsuario(txtUsuario.getText());
autentica.setSenha(senha);
if(autentica.autentica() == false){
JOptionPane.showMessageDialog(null,"Usuário ou Senha Inválidos !","ATENÇÃO",JOptionPane.WARNING_MESSAGE);
}else{
telaInicial principal = new telaInicial();
this.dispose();
principal.setVisible(true);
}
}
public static void main(String args[]){
telaLogin app = new telaLogin();
}
}
class Login{
private static String usuario;
public static void setUsuario(String usuario){
Login.usuario = usuario;
}
public static String getUsuario(){
return usuario;
}
public static void setSenha(String senha){}
public static boolean autentica(){
return true;
}
}[/code]
b) Classe com a tela principal:
[code]import javax.swing.;
import java.awt.;
public class telaInicial extends JFrame{
public telaInicial(){
Container c = getContentPane();
c.setLayout(new FlowLayout());
String usuario = Login.getUsuario();
c.add(new JLabel(usuario));
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}[/code]