jRadio Button

7 respostas
Pedro_Salles

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
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);

		}

	}
tambem nessa tela de cadastro tenho dois jRadio Button
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;
	}
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

7 Respostas

renzonuccitelli

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.

renzonuccitelli
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
}

	}

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...

Pedro_Salles

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

tentei fzer mais nao deu certo

renzonuccitelli
Pedro Salles:
nao entendi essa parte
if(this.isUsuario()){

tentei fzer mais nao deu certo

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()

Pedro_Salles

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…

renzonuccitelli

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…

Pedro_Salles

tentei fazer aki mais nao deu certo

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

public ArrayList<Usuario> 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;
	}
quando eu vou compara ta dando erro. os dados que eu to recuperando to salvando num arraylist
Criado 19 de novembro de 2008
Ultima resposta 21 de nov. de 2008
Respostas 7
Participantes 2