Ir ao conteúdo
  • Cadastre-se

Sasaki hirose

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. Boa tarde pessoa, estou desenvolvendo uma aplicação e estou com duvida em relação ao combobox swing no meu form de cadastro de equipmento, eu tenho o combobox nome e data, o combobox data deve ser atualizado dependendo do combobox nome selecionado consegui fazer os preenchimento individuais das combobox, porém não consigo entender o que tenho que fazer para que o combobox data esteja relacionado com o combobox nome, ao fazer a seleção de um nome no combobox nome, o combobox data deveria trazer a data respectiva ao nome Exemplo na imagem: PROJETO NO GITHUB: https://github.com/YUSEIRENDER/SemurCEI vou abreviar parte do codigo fonte pois o codigo esta muito extenso CODIGO FONTE: CADASTROEQUIPAMENTOCONTROLLER.JAVA: public void atualizaNome() { try { //buscar login nome do banco de dados //cria objeto do tipo connection conexao passando novo Conexao(conexao.java) chamando metodo conectar Connection conexao = new Conexao().Conectar(); //cria objeto do tipo LoginDAO chamado logindao passando novo LoginDAO recebendo conexao LoginDAO logindao = new LoginDAO(conexao); //cria arraylist de Login chamado logins passando o objeto logindao do tipo Login chamando o metodo selecione all login ArrayList<Login> logins = logindao.selecioneAllLogin(); //exibir login nome no combobox nome helper.preencherNome(logins); } catch(SQLException ex) { JOptionPane.showMessageDialog(null,"Error a preencher combobox nome:" +ex); } } public void atualizarData() { try { //buscar login nome do banco de dados //cria objeto do tipo connection conexao passando novo Conexao(conexao.java) chamando metodo conectar Connection conexao = new Conexao().Conectar(); //cria objeto do tipo LoginDAO chamado logindao passando novo LoginDAO recebendo conexao LoginDAO logindao = new LoginDAO(conexao); //cria arraylist de Login chamado logins passando o objeto logindao do tipo Login chamando o metodo selecione all login ArrayList<Login> logins = logindao.selecioneAllLogin(); //exibir login nome no combobox nome helper.preencherData(logins); } catch(SQLException ex) { JOptionPane.showMessageDialog(null,"Error a preencher combobox data:" +ex); } CADASTROEQUIPAMENTOHELPER.JAVA: public void preencherNome(ArrayList logins) { DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtComboNome().getModel(); for(Login login : logins) { combomodel.addElement(login.nomeToString()); } } public void preencherData(ArrayList logins) { DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtComboData().getModel(); for(Login login : logins) { combomodel.addElement(login.DatatoString()); } LOGINDAO.JAVA: //metodo para trazer todos logins do banco de dados public ArrayList<Login> selecioneAllLogin() throws SQLException { ArrayList logins = new ArrayList(); //Faz a instância da classe Login String sql = "select * from login"; //Instrução SQL para seleção de registro específico da tabela login; try { PreparedStatement pstm = conexao.prepareStatement(sql); ResultSet rs = pstm.executeQuery(); while(rs.next()){ Login login = new Login(); //Laço de repetição para preencher com os dados do banco o objeto Login; login.setId(rs.getInt("id")); login.setUsuario(rs.getString("usuario")); login.setSenha(rs.getString("senha")); login.setNome(rs.getString("nome")); login.setEmail(rs.getString("email")); login.setTipo(rs.getString("tipo")); login.setData(rs.getTimestamp("data")); //"seta" os atributos da classe Login com os dados dos campos do banco - pega os dados do banco para pesquisa no formulário; logins.add(login); } } catch (SQLException ex) { JOptionPane.showMessageDialog(null, "Error ao pesquisar todos logins no banco de dados!" +ex); } finally { //feche a conexao conexao.close(); } //retorne o array logins return logins; } LOGIN.JAVA: public String nomeToString() { return getNome(); } public String DatatoString() { return getData().toString(); }
  2. Boa noite pessoa, estou desenvolvendo um game para um projeto da faculdade Ao criar um inimigo no jogo o mesmo não aparece no jogo Na classe game, crio um objeto da nave inimiga e criamos uma lista das nave inimiga no metodo update faço um loop for para percorrer a lista da nave inimiga, apos isso crio um objeto da nave inimiga recebendo a lista da nave inimiga, e num if se a nave inimiga for visivel, chame o update() da classe inimigo, ou remova uma nave inimiga da lista no metodo iniciaInimigos crio um vetor de 20 posições para armazenar cada nave inimiga, crio um arraylist de nave inimiga chamado navesinimigas, faço um loop para percorrer o vetor, crio duas variaveis chamadas x e y, que vão receber ter um valor aleatorio x = (int)(Math.random()*8000+1022); e y = (int)(Math.random()*600+30); logo apos adiciono ao arraylist uma nave inimiga passando o x e y; para desenhar as naves inimigas na tela, no paintComponent eu crio uma nova lista de nave inimiga que recebe um objeto da nave inimiga chamando o metodo getNavesInimigas da classe da nave inimiga(List) apos isso percorro a lista, dentro da lista crio uma nova nave inimiga que recebe uma nave inimiga no indice, apos isso chamo o g.drawImage para desenhar o inimigo na tela GITHUB: https://github.com/YUSEIRENDER/StarImpact/tree/main/src GAME.JAVA package Game; import Model.Background; import Model.Menu; import Model.NaveInimiga; import Model.NaveJogador; import Model.Tiro; import Principal.Principal; import javax.swing.JPanel; import Resource.KeyHandler; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.util.ArrayList; import java.util.List; public class Game extends JPanel { //INSTANCIA OBJETO TECLADO DE KEYHANDLER KeyHandler teclado = new KeyHandler(); //NAVE JOGADOR public NaveJogador navejogador; //NAVE INIMIGA public NaveInimiga naveinimiga; //LIST NAVE INIMIGA private List<NaveInimiga> navesinimigas; //BACKGROUND public Background backgrounda; public Background backgroundb; //VARIAVEL BOOLEANA ISRODANDO INICIALIZADA TRUE; private boolean isRodando = true; //VARIAVEL GAMESTATE INICIALIZADA COMO MENU public static String gamestate = "menu"; //VARIAVEL MENU public static Menu menu; //VARIAVEL THREAD DO TIPO THREAD Thread thread; //VARIAVEL FPS INICIALIZADA COM 0 int fps = 0; //CONSTRUTOR public Game() { //INSTANCIA NAVE DO JOGADOR navejogador = new NaveJogador(); //INSTANCIA BACKGROUND A E BACKGROUND B backgrounda = new Background(); backgroundb = new Background(); //REPOSICIONA FUNDO B backgroundb.posX = backgroundb.posX + 1024; //SETA VELOCIDADE DO BACKGROUND backgrounda.velX = backgrounda.velX - 6; backgroundb.velX = backgroundb.velX - 6; //INSTANCIA MENU menu = new Menu(0, 0, 0, 0, null); //ISNTANCIA NAVE INIMIGA naveinimiga = new NaveInimiga(); addKeyListener(teclado); setDoubleBuffered(true); //RECEBE FOCO setFocusable(true); //THREAD INICIA GAMELOOP(RUNNING) new Thread(new Runnable() {@Override public void run() { long lastTime = System.nanoTime(); double amountofTicks = 60.0; double ns = 1000000000 / amountofTicks; double delta = 0; int frames = 0; double timer = System.currentTimeMillis(); while(isRodando) { long now = System.nanoTime(); delta +=(now - lastTime)/ns; lastTime = now; if(delta>= 1) { handlerEvents(); update(); render(); frames++; delta--; } if(System.currentTimeMillis()- timer>=1000) { System.out.println("FPS: "+ frames); fps = frames; frames = 0; timer+=1000; } } } }).start(); } //METODO PARA INICIAR O JOGO public synchronized void start() { thread = new Thread((Runnable) this); isRodando = true; thread.start(); stop(); } //METODO PARA PARAR O JOGO public synchronized void stop() { isRodando = false; try { thread.join(); } catch(InterruptedException e) { e.printStackTrace(); } } //AÇÕES DO JOGADOR public void handlerEvents() { //se teclado cima apertado = true if(teclado.CimaPressed == true) { navejogador.posY -= navejogador.velY; } //se teclado baixo apertado = true if(teclado.BaixoPressed == true) { navejogador.posY += navejogador.velY; } //se teclado esquerda apertado = true if(teclado.EsquerdaPressed == true) { navejogador.posX -= navejogador.velX; } //se teclado direita apertado = true if(teclado.DireitaPressed == true) { navejogador.posX += navejogador.velX; } } //METODO PARA ATUALIZAR FRAMES public void update() { //SE O GAMESTATE FOR IGUAL A GAME if(gamestate == "game") { navejogador.mudarFrame(); //TESTE FUNDO testeFundo(); //TESTE COLISAO TELA testeColisaoTela(); //MOVIMENTO ALEATORIO NAVE INIMIGA iniciainimigos(); //INICIA TIRO iniciaTiros(); //MOVIMENTO DO BACKGROUND backgrounda.posX += backgrounda.velX; backgroundb.posX += backgroundb.velX; //PARA I MENOR QUE TAMANHO LISTA NAVE INIMIGA for(int i = 0; i < navesinimigas.size(); i++) { //NAVE INIMIGA NI RECEBE O INDICE DA LISTA DA NAVE INIMIGA NaveInimiga ni = navesinimigas.get(i); //SE NAVE INIMIGA É VISIVEL if(ni.isIsVisivel()) { //NAVE INIMIGA ATUALIZE ni.update(); } else { //REMOVA DA LISTA navesinimigas.remove(i); } } } //SE GAMESTATE FOR IGUAL A MENU else if (gamestate == "menu") { //CHAME MENU UPDATE menu.update(); } } public void render() { repaint(); } //METODOS public void iniciaTiros() { //LISTA DE TIROS TIROS RECEBE NAVEJOGADOR GET TIROS List<Tiro> tiros = navejogador.getTiros(); //PARA I MENOR QUE TAMANHO LISTA TIROS for(int i = 0; i < tiros.size(); i++) { //TIRO T PARSE PARA TIRO PEGUE O INDICE LISTA TIROS Tiro t = (Tiro)tiros.get(i); //SE VISIVEL if(t.isVisivel) { //TIRO ATUALIZE t.update(); } else { //LISTA TIROS REMOVA E DECREMENTE I tiros.remove(i); i--; } } } //METODO PARA INICIAR OS INIMIGOS public void iniciainimigos() { int cordenadas[] = new int [20]; navesinimigas = new ArrayList<NaveInimiga>(); for(int i = 0; i < cordenadas.length; i++) { int x = (int)(Math.random()*8000+1022); int y = (int)(Math.random()*600+30); navesinimigas.add(new NaveInimiga(x,y)); } } //REPOSICIONAR FUNDO public void testeFundo() { if((backgrounda.posX+1024) <= 0)//SE SAIU PELA ESQUERDA DA TELA { //REPOSICIONA BACKGROUNDA PARA TRAS DO BAKGROUNDB backgrounda.posX = backgroundb.posX + 1024; } if((backgroundb.posX+1024) <= 0)//SE SAIU PELA ESQUERDA DA TELA { //REPOSICIONA BACKGROUNDA PARA TRAS DO BAKGROUNDB backgroundb.posX = backgrounda.posX + 1024; } } //IMPEDE NAVE DE fugir DA AREA DO JOGO public void testeColisaoTela() { if(navejogador.posX+(navejogador.raio*2) >= Principal.LARGURA_TELA) { navejogador.posX = navejogador.posX - navejogador.velX; } if(navejogador.posX <= 0) { navejogador.posX = navejogador.posX + navejogador.velX; } if(navejogador.posY+(navejogador.raio*2) >= Principal.ALTURA_TELA ) { navejogador.posY = navejogador.posY - navejogador.velY; } if(navejogador.posY <= 0) { navejogador.posY = navejogador.posY + navejogador.velY; } } //METODOS ESPECIAIS public void paintComponent(Graphics g) { super.paintComponent(g); //SE GAMESTATE FOR IGUAL A GAME if(gamestate == "game") { g.drawImage(backgrounda.imagem, backgrounda.posX, backgrounda.posY, null); g.drawImage(backgroundb.imagem, backgroundb.posX, backgroundb.posY, null); g.drawImage(navejogador.imagAtual, navejogador.posX, navejogador.posY, null); //LISTA TIRO TIROS RECEBE NAVEJOGADOR GET TIROS List<Tiro> tiros = navejogador.getTiros(); //PARA I MENOR QUE TAMANHO LISTA TIROS for(int i = 0; i < tiros.size(); i++) { //TIRO T PARSE TIRO PEGUE INDICE LISTA TIROS Tiro t = (Tiro)tiros.get(i); //DESENHA g.drawImage(t.getImagem(), t.getPosX(), t.getPosY(), this); } List<NaveInimiga> navesinimigas = naveinimiga.getNavesInimigas(); for(int i = 0; i < navesinimigas.size(); i++) { NaveInimiga navei = navesinimigas.get(i); g.drawImage(navei.getImagAtual(), navei.getPosX(), navei.getPosY(), null); } //CONTADOR FPS g.setColor(new Color(110,200,10)); g.setFont(new Font("Arial", Font.BOLD, 20)); g.drawString("FPS: "+fps, 5, 20); } //SE não SE GAMESTATE FOR IGUAL A MENU else if(gamestate == "menu") { //CHAME MENU PAINTCOMPONENT menu.paintComponent(g); } } } NaveInimiga.java package Model; import Resource.Recursos; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; public class NaveInimiga { //SPRITE DA NAVE INIMIGA public BufferedImage sprite; //CADA FRAMES DO SPRITE public BufferedImage[] listaFrames; //ATRIBUTOS DO SPRITE int indiceAtual; int qtdLinhasFrame; int qtdColunasFrame; int qtdFrames; public BufferedImage imagAtual; long startTime, endTime, deltaTime, tempoDecorrido, intervaloEntreFrames; //ATRIBUTOS DA NAVE JOGADOR public int posX; public int posY; public int raio; public int velX; public int velY; public int width; public int height; private boolean isVisivel; public static List<NaveInimiga> navesinimigas; //CONSTRUTOR public NaveInimiga() { //INICIALIZA ARRAY DE FRAMES E OUTROS ATRIBUTOS qtdLinhasFrame = 5; qtdColunasFrame = 1; qtdFrames = qtdLinhasFrame * qtdColunasFrame; listaFrames = new BufferedImage[qtdFrames]; indiceAtual = 0; width = 100; height = 100; posX = 885; posY = 100; raio = 50; velX = -4; velY = -4; tempoDecorrido = 0; intervaloEntreFrames = 20; navesinimigas = new ArrayList<NaveInimiga>(); //FAZ O CARREGAMENTO DA IMAGEM try { sprite = ImageIO.read(getClass().getResource("/Imagens/naveinimigaspritesheet.png")); //PERCORRE AS 5 LINHAS(0-4) for (int i = 0; i < qtdLinhasFrame; i++) { //PERCORRE A 1 COLUNA (0) for (int j = 0; j < qtdColunasFrame; j++) { int x1 = j * width; int y1 = i * height; int x2 = x1 + width; int y2 = y1 + height; listaFrames[i * qtdColunasFrame + j] = Recursos.getInstance().cortarImagem(x1, y1, x2, y2, sprite); } } } catch (Exception e) { e.printStackTrace(); } } //CONSTRUTOR APENAS COM POSICAO X E Y DA NAVE INIMIGA public NaveInimiga(int posX, int posY) { this.posX = posX; this.posY = posY; } public void update() { this.posX -= velX; if (this.posX < 0) { isVisivel = false; } } //METODO PARA ATUALIZAR SPRITES A CADA FRAME public void mudarFrame() { startTime = System.currentTimeMillis(); deltaTime = startTime - endTime; tempoDecorrido = tempoDecorrido + deltaTime; if (tempoDecorrido >= intervaloEntreFrames) { indiceAtual++; tempoDecorrido = 0; } if (indiceAtual >= qtdFrames - 1) { indiceAtual = 0; } imagAtual = listaFrames[indiceAtual]; endTime = startTime; } //GETTERS E SETTERS public static List<NaveInimiga> getNavesInimigas() { return navesinimigas; } public BufferedImage getSprite() { return sprite; } public void setSprite(BufferedImage sprite) { this.sprite = sprite; } public BufferedImage getImagAtual() { return imagAtual; } public void setImagAtual(BufferedImage imagAtual) { this.imagAtual = imagAtual; } public int getPosX() { return posX; } public void setPosX(int posX) { this.posX = posX; } public int getPosY() { return posY; } public void setPosY(int posY) { this.posY = posY; } public int getRaio() { return raio; } public void setRaio(int raio) { this.raio = raio; } public int getVelX() { return velX; } public void setVelX(int velX) { this.velX = velX; } public int getVelY() { return velY; } public void setVelY(int velY) { this.velY = velY; } public int getWidth() { return width; } public void setWidth(int width) { this.width = width; } public int getHeight() { return height; } public void setHeight(int height) { this.height = height; } public boolean isIsVisivel() { return isVisivel; } public void setIsVisivel(boolean isVisivel) { this.isVisivel = isVisivel; } }
  3. Estou desenvolvendo um sistema, estou usando MVC(model view controller), nas view do projeto deixo a chamada com controller com um metodo que usa o helper pra obter e setar os campos da view e o controller nos seus metodos chama metodos do DAO o problema acontece na função do select, criei o select para a funcionalidade da pesquisa passando txtPesquisarNome como campo de pesquisa pelo nome porém ao clcikar no botão, nada acontece, os campos da tela de cadastro login não são preenchidos com os dados vindo no banco, não entra em nenhum else ou catch para me retornar um joptionpane que criei caso tivesse erro github: https://github.com/YUSEIRENDER/SemurCei CadastroLoginController: public Login selectporNome(String nome) throws SQLException { nome = TelaCadastroLogin.txtPesquisarNome.getText(); Connection conexao = new Conexao().Conectar(); LoginDAO loginDAO = new LoginDAO(conexao); Login login = loginDAO.selecioneLoginNome(nome); if(login == null) { JOptionPane.showMessageDialog(null, "Login não encontrado!"); } else { helper.setModelo(login); } return login; } CadastroLoginHelper: //metodo obter modelo public Login obterModelo() { String usuario = view.getTxtLogin().getText();//string usuario recebe view pegue gettxtlogin e pegue o texto String nome = view.getTxtNome().getText();//string nome recebe view pegue getttxtnome e pegue o texto String senha = view.getTxtSenha().getText();//string senha recebe view pegue gettxtsenha e pegue o texto String email = view.getTxtEmail().getText();//string email recebe view pegue gettxtemail e pegue o texto String tipo = ((String) view.getTxtTipo().getSelectedItem());//string tipo recebe view pegue gettxttipo e pegue o item selecionado String data = (view.getTxtData().getText()); //construir objeto do tipo login Login login = new Login(usuario,nome,senha,email,tipo, data); return login; } //metodo para setar o modelo public void setModelo(Login login) { view.txtLogin.setText(login.getUsuario()); view.txtNome.setText(login.getNome()); view.txtSenha.setText(login.getSenha()); view.txtEmail.setText(login.getEmail()); if(view.txtTipo.getItemAt(1).contains("Admin")) { view.txtTipo.setSelectedIndex(1); } else if (view.txtTipo.getItemAt(1).contains("Usuario")) { view.txtTipo.setSelectedIndex(2); } view.txtData.setText(login.getData()); } LoginDAO: //metodo para trazer todos logins do banco de dados passando como parametro de pesquisa o nome public Login selecioneLoginNome(String nome) throws SQLException { Login login = new Login(); //Faz a instância da classe Login String sql = "select * from login where nome = ?"; //Instrução SQL para seleção de registro específico da tabela login, pelo nome; nome = view.TelaCadastroLogin.txtPesquisarNome.getText(); try { PreparedStatement pstm = conexao.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); pstm.setString(1, "nome"); ResultSet rs = pstm.executeQuery(); while(rs.first()){ //Laço de repetição para preencher com os dados do banco o objeto Login; login.setUsuario(rs.getString("usuario")); login.setSenha(rs.getString("senha")); login.setEmail(rs.getString("email")); login.setTipo(rs.getString("tipo")); login.setData(rs.getString("data")); //"seta" os atributos da classe Login com os dados dos campos do banco - pega os dados do banco para pesquisa no formulário } } catch (SQLException ex) { JOptionPane.showMessageDialog(null, "Login não encontrado!" + ex); } finally { conexao.close(); } return login; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!