jRadio Button

boa noite…

tenho uma tela de cadasto com nome e senha quando o botao “Ok” é clickado salva no banco de dados na tabela usuario. aki é onde crio o botao e dou a açao nele

[code]private JButton getOkButton() {
if (okButton == null) {
okButton = new JButton();
okButton.setText(“OK”);
okButton.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				cadastrarUsuario();
		
			
				
			}
		});
	}
	return okButton;
}

protected void cadastrarUsuario() {
	String nome = getNomeTextField().getText();
	String senha = new String(getSenhaPasswordField().getPassword());

	Usuario usuario = new Usuario();
	usuario.setNome(nome);
	usuario.setSenha(senha);

	BdUsuario bdUsuario = new BdUsuario();
	try {
		bdUsuario.inserir(usuario);
		JOptionPane.showMessageDialog(null, "Cadastrado com sucesso!");
	} catch (SQLException e) {
		JOptionPane.showMessageDialog(this, "Erro ao cadastrar usuário!\n"
				+ e.getMessage(), "Erro", JOptionPane.WARNING_MESSAGE);

	}

}
  [/code]

tambem nessa tela de cadastro tenho dois jRadio Button

[code]private JRadioButton getSuperUsuario() {
if (superUsuario == null) {
superUsuario = new JRadioButton(“Super Usuario”);
getButtonGroup().add(superUsuario);
}
return superUsuario;
}

private JRadioButton getAdm() {
	if (adm == null) {
		adm = new JRadioButton("Adm");
		getButtonGroup().add(adm);

	}
	return adm;
}[/code]

a minha duvia é a seguinte: se o jradioButton superUsuario tivesse selecionado, queria que quando o botao ok fosse precionado salvase em outra tabela no banco de dados. eu tenho a tabela Adm e a superUsuario feito no banco de dados mysql…
vamos super selecionei o adm salva na tabela Adm, selcionei SuperUsuario salva na tabela SuperUsuario

se alguem puder me ajudar eu agradeço muito

obriado

Basta vc fazer um método que te diga qual dos dois está selecionado e com esse valor fazer a lógica de salvamento adequada. Só acho que vc está confundindo as coisas, já que seu método do RadioButton está retornando um dos dois botões.

[code]private JButton getOkButton() {
if (okButton == null) {
okButton = new JButton();
okButton.setText(“OK”);
okButton.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				cadastrarUsuario();
		
			
				
			}
		});
	}
	return okButton;
}

protected void cadastrarUsuario() {
	String nome = getNomeTextField().getText();
	String senha = new String(getSenhaPasswordField().getPassword());

	Usuario usuario = new Usuario();
	usuario.setNome(nome);
	usuario.setSenha(senha);

if(this.isUsuario()){
BdUsuario bdUsuario = new BdUsuario();
try {
bdUsuario.inserir(usuario);
JOptionPane.showMessageDialog(null, “Cadastrado com sucesso!”);
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, “Erro ao cadastrar usuário!\n”
+ e.getMessage(), “Erro”, JOptionPane.WARNING_MESSAGE);

	}

}
else if(this.isAdm()){
//escrever aqui a lógica para salvar na tabela do adm
}

}[/code]

Vc teria que prover os métodos com retorne boleano dizendo qual o tipo escolhido, e esse método vc conseguria facilmente apenas perguntando qual dos botoes está selecionado…

nao entendi essa parte if(this.isUsuario()){

tentei fzer mais nao deu certo

[quote=Pedro Salles]nao entendi essa parte if(this.isUsuario()){

tentei fzer mais nao deu certo[/quote]

Vc tem que criar o método private boolean isUsuario(){} na sua classe. Da mesma for vc cria o isAdm.

[code]

En ves de usar this.isUsuario() use superUsuario.isSelected() e em vez de this.isAdm use adm.isSelected()

deu certo

muito obrigado por ter me ajudado

uma outra duvida que tenho é a seguinte. tenho uma tela de login com nome e senha, como faça pra comparar o nome e a senha que a pessoa digitou nos textFields com a que ta salva no banco de dados…

Faz praticamente a mesma coisa que fiz na solução desse tópico:

Coloque o valor do textField em uma string, com o getText() (acho que é esse o método), depois recupera o nome e senha do BD e compare os valores. Só uma coisa, se a sua aplicação for academica td bem vc guardar as senhas no bd. Caso contrário, por motivos de segurança, seria bom vc guarda o hash das senhas…

tentei fazer aki mais nao deu certo

esse e a classe de conexao com o banco ela que busca os dados no bd

[code]public ArrayList listar() throws SQLException {
String url = “jdbc:mysql://localhost:3306/controle”;
String user = “root”;
String password = “1234”;

	ArrayList<Usuario> usuarios = new ArrayList<Usuario>();

	Connection connection = DriverManager
			.getConnection(url, user, password);
	PreparedStatement preparedStatement = connection
			.prepareStatement("select * from usuario /*order by nome*/");
	ResultSet resultSet = preparedStatement.executeQuery();

	while (resultSet.next()) {
		Usuario usuario = new Usuario();
		usuario.setId(resultSet.getInt("idusuario"));
		usuario.setNome(resultSet.getString("nome"));
		usuario.setSenha(resultSet.getString("senha"));

		usuarios.add(usuario);
	}
	connection.close();
	preparedStatement.close();
	resultSet.close();

	return usuarios;
}[/code]

quando eu vou compara ta dando erro.
os dados que eu to recuperando to salvando num arraylist