Busca nome

Boa noite… galera to começando em java, queria umas dicas de como eu faço um botão abrir em outro Jframe 2 com uma caixa de texto listando dados da busca do Jframe 1

Por exemplo, digito o nome de uma pessoa e ao clicar no botão “buscar” me aparece os dados da pessoa.

Agradeço desde já, tentei de varias formas já e não consegui

Posta o seu código de uma dessas várias formas aí que você tentou que o pessoal te ajuda com o que você estiver errando :wink:

package view;

import java.awt.EventQueue;
import java.awt.Font;
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.JTextField;
import javax.swing.border.EmptyBorder;

public class Tela1 extends JFrame {

	private JPanel contentPane;
	private JTextField busca;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Tela1 frame = new Tela1();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Tela1() {

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 819, 478);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JButton btnBuscar = new JButton("Buscar");
		btnBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {

			}
		});

		btnBuscar.setBounds(305, 76, 119, 23);
		contentPane.add(btnBuscar);

		JButton btnLimparBusca = new JButton("Limpar Busca");
		btnLimparBusca.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				busca.setText(null);
			}
		});
		btnLimparBusca.setBounds(305, 122, 119, 23);
		contentPane.add(btnLimparBusca);

		JButton btnSair = new JButton("SAIR");
		btnSair.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				System.exit(0);
			}
		});
		btnSair.setBounds(305, 173, 119, 23);
		contentPane.add(btnSair);

		JLabel lblSistemaDeConsulta = new JLabel("SISTEMA DE CONSULTA CLIENTES");
		lblSistemaDeConsulta.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblSistemaDeConsulta.setBounds(92, 11, 280, 23);
		contentPane.add(lblSistemaDeConsulta);

		busca = new JTextField();
		busca.setBounds(77, 77, 208, 22);
		contentPane.add(busca);
		busca.setColumns(10);

		JLabel lblNome = new JLabel("Nome:");
		lblNome.setFont(new Font("Tahoma", Font.PLAIN, 12));
		lblNome.setBounds(20, 77, 57, 19);
		contentPane.add(lblNome);
	}
}

Está assim até o momento, ainda preciso ajustar o busca e conectar o banco que não tenho ideia de como fazer isso

Quando você for limpar uma String, não coloque null, mas sim "" (aspas vazias mesmo). Então ficaria busca.setText("");

Para conectar num banco, você precisará ter o banco aberto em sua máquina, um arquivo connector, e uma classe que cria a conexão (ConnectionFactory). Além desta, você cria uma classe DAO onde será tratado os dados, queira gravar no BD, pegar informações que já estão neles, alterar informações lançadas anteriormente ou exclusão das mesmas. O arquivo connector vai variar de acordo com o banco de dados que você estiver utilizando. A classe ConnectionFactory eh quase que padrão, mas também vai variar um pouquinho para cada BD. A classe DAO tem um esqueleto padrão, mas as queries do BD vão variar de acordo com a sua necessidade.

E por que você pôs resolvido no título, sendo que ninguém ainda te ajudou? E caso já tenha achado a solução, compartilhe conosco para ajudar outros usuários.

1 curtida

Mas aí tu tá pondo a carroça na frente dos bois…

Não tem nenhuma implementação, só tem o layout da tela!

Faça uma coisa de cada vez!

: Veja como se cria uma conexão com banco de dados e realizar transações. (Um CRUD)
: Tendo aprendido isso, basta pegar os dados fornecidos pelo usuário no seu form, fazer uma busca no banco de dados, verificar as informações retornadas da busca com as fornecidas pelo usuário e acabou!

A medida em que for aprendendo, desenvolvendo e surgirem dúvidas ou dificuldades mais pontuais, vai postando aqui no GUJ que toda a galera vai ajudando.

1 curtida

Desculpe não ter postado antes. Aqui está o código e com o botão funcionando

package view;

import java.awt.EventQueue;
import java.awt.Font;
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.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

public class Tela1 extends JFrame {

private JPanel contentPane;
private JTextField busca;

/**
 * Launch the application.
 */
public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
		public void run() {
			try {
				Tela1 frame = new Tela1();
				frame.setVisible(true);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	});
}

/**
 * Create the frame.
 */
public Tela1() {

	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setBounds(100, 100, 819, 478);
	contentPane = new JPanel();
	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
	setContentPane(contentPane);
	contentPane.setLayout(null);

	JButton btnBuscar = new JButton("Buscar");
	btnBuscar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			pesquisarCliente();

		}

		private void pesquisarCliente() {
			int pesquisarCliente = 0;
			// TODO Auto-generated method stub
			JOptionPane.showMessageDialog(null,
					"CLIENTE NÃO ENCONTRADO NA BASE DE DADOS! \n VERIFIQUE SE DIGITOU O NOME CORRETAMENTE.");
			// JOptionPane.showMessageDialog(null, "VERIFIQUE SE DIGITOU O NOME
			// CORRETAMENTE.");

		}
	});

	btnBuscar.setBounds(305, 76, 119, 23);
	contentPane.add(btnBuscar);

	JButton btnLimparBusca = new JButton("Limpar Busca");
	btnLimparBusca.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			busca.setText(null);
		}
	});
	btnLimparBusca.setBounds(305, 122, 119, 23);
	contentPane.add(btnLimparBusca);

	JButton btnSair = new JButton("SAIR");
	btnSair.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			System.exit(0);
		}
	});
	btnSair.setBounds(305, 173, 119, 23);
	contentPane.add(btnSair);

	JLabel lblSistemaDeConsulta = new JLabel("SISTEMA DE CONSULTA CLIENTES");
	lblSistemaDeConsulta.setFont(new Font("Tahoma", Font.BOLD, 14));
	lblSistemaDeConsulta.setBounds(92, 11, 280, 23);
	contentPane.add(lblSistemaDeConsulta);

	busca = new JTextField();
	busca.setBounds(77, 77, 208, 22);
	contentPane.add(busca);
	busca.setColumns(10);

	JLabel lblNome = new JLabel("Nome:");
	lblNome.setFont(new Font("Tahoma", Font.PLAIN, 12));
	lblNome.setBounds(20, 77, 57, 19);
	contentPane.add(lblNome);
}

}

E aqui está a conexão com o banco que tinha feito…

package conection;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ConnectionFactory {

private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/nome_banco";
private static final String USER = "root";
private static final String PASS = "";

public static Connection getConnection() {

	try {
		Class.forName(DRIVER);

		return DriverManager.getConnection(URL, USER, PASS);

	} catch (ClassNotFoundException | SQLException ex) {
		throw new RuntimeException("ERRO DE CONEXAO", ex);
	}
}

public static void closeConnection(Connection con){
	
	try {
	
	if (con != null) {
		con.close();
	}
	}catch (SQLException ex) {
		Logger.getLogger(ConnectionFactory.class.getName()).log(Level.SEVERE, null, ex);
	}
}

	
	public static void closeConnection(Connection con, PreparedStatement stmt){
		
		closeConnection(con);
		
		try {
			if(stmt != null) {
				stmt.close();
			}

		}catch (SQLException ex) {
			Logger.getLogger(ConnectionFactory.class.getName()).log(Level.SEVERE, null, ex);
		}
	}

public static void closeConnection(Connection con, PreparedStatement stmt, ResultSet rs ){

closeConnection(con, stmt);

try {
	if(rs != null) {
		rs.close();
	}

}catch (SQLException ex) {
	Logger.getLogger(ConnectionFactory.class.getName()).log(Level.SEVERE, null, ex);
}

}
}

package model.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

import conection.ConnectionFactory;

public class consultaoDAO {

public void create() {
	
	Connection con = ConnectionFactory.getConnection();
	PreparedStatement stmt = null;
	
	try {
		stmt = con.prepareStatement("");
		
		
	} catch (SQLException ex) {
		Logger.getLogger(consultaoDAO.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	
}

}

Fiz separado pra entender melhor, to usando o banco Mysql workbench

Ficou um pouco confuso, sempre que for postar código aqui no fórum use o botão de formatação de código!

image

2 curtidas