Javafree
 Forum   Topics   Author   Post 
Java Básico Fechar internet [Resolvido] Jovani [quote="staroski"][quote="Jovani"]Sim estou abrindo com Runtime.exec. [/quote] Então é só chamar o método 'destroy()' do objeto 'Process' criado. [/quote] Obrigado! Funcionou!
Java Básico Fechar internet [Resolvido] Jovani [quote="staroski"]Você abre ela através do Runtime.exec? Caso afirmativo, é só você encerrar o objeto Process criado. [/quote] Olá Sim estou abrindo com Runtime.exec.
Java Básico [Dúvida] Como remover uma linha de um jtextArea? Jovani Olá Na ação do botão remover coloca algo como o código abaixo: [code] obs.setText("");//limpa seu txtArea for(int i = 0; i<lista.size();i++){ if(lista.get(i).contains(palavra.getText()) && lista.get(i).contains(numero.getText())){ //percorre o arraylist e verifica se contem a palavra e o numero digitado lista.remove(i); //remove da lista } } for(int i = 0; i<lista.size();i++){ obs.append(lista.get(i)+ "\n");//atualiza a txtArea com a linha excluida } [/code]
Java Básico Fechar internet [Resolvido] Jovani Ola Como faco para fechar uma pagina da internet? Eu consigo abrir com java ,mas não encontrei solução para fechar.
Java Básico Chat simples txt JAVA Jovani Prezados Estive pesquisando sobre como desenvolver um chat simples em Java, mas como não entendo muito de redes, e o local que vou testar ( na empresa que trabalho) não tenho liberdade de alguns acessos, como alteração em firewall, portas, IP, e tal não conseguiria implementar um chat da maneira tradicional. Mas como os computadores estão em rede criei uma interface que ficou parecida com a de um chat em grupo, que funcionou da seguinte maneira: 1° - Os computadores dos usuários estão em rede e todo conseguem acessar uma pasta em comum; -Criei um diretório oculto, nesta pasta comum a todos, e dentro dele criei dois txt, um "conversas" e o outro "usuarios"; -Na aplicação utilizei a classe Timer que faz a verificação a cada segundo nestes dois arquivos e caso tenha alguma alteração, a aplicação atualiza a tela do chat e toca o som de msgem nova; - Cada usuário que abrir o chat, automaticamente salva seu User no txt usuarios e já atualiza na tela de quem tiver utilizando o chat; Caso alguém também esteja pesquisando a respeito pode tentar fazer isso,só não consegui implementar para conversa privada, mas para conversas em grupo ficou legal. Se alguém tiver idéia de como implementar isso, mas com possibilidade de conversa privada, podem me auxiliar. Valeu!!!
Banco de Dados - JDBC / SQL Pegar o ID do item selecionado no JcomboBox em java NetBeans Jovani Olá Clica com botão direito do mouse no comboBox,vai em - eventos - item - itemStateChanged - e então adicione o código: [code] seuTextField.setText(seuComboBox.getSelectedItem().toString()); [/code]
Java Básico Chamar método de objeto local[Resolvido] Jovani [quote="staroski"]Poste seus fontes [/quote] Obrigado pelas dicas, consegui resolver com o seguinte: Na classe onde a thread é criada criei um atributo ID, o qual será setado obrigatoriamente quando for instanciado um objeto desta classe. E no sistema principal onde criarei varios destes objetos, criei um array list destes objetos, e então quando eu precisar chamar o método "thread.cancel()", busco pelo ID no array list e consigo cancelar a thread.
Java Básico Chamar método de objeto local[Resolvido] Jovani [quote="staroski"]Se você precisa referenciar seua objetos mais tarde, tens que guardar a referência deles. Use variáveis de instância, não faz sentido usar variáveis globais (static) [/quote] Na verdade eu preciso é parar uma thread, já encontrei algumas sugestões, mas nenhuma se enquadrou no que eu preciso. Resumidamente: -tenho uma thread, que aciona uma função de execução -essa thread vai programar um horários para despertar -cada horário que eu programo para despertar será um Objeto instanciado, que vai chamar essa thread -enfim meu problema é este...se eu instanciar um objeto(com thread) e em seguida quiser cancelar a execução dele, não estou conseguindo.
Java Básico Chamar método de objeto local[Resolvido] Jovani Olá Como faço para chamar através de um actionPerformed, um método de um objeto instanciado localmente em outro acrionPerformed? Exemplo: [code] //tenho esta ação de uma botão... private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { Agendamentos h = new Agendamentos(); int ho = Integer.parseInt(txtHora.getText()); int mi = Integer.parseInt(txtMin.getText()); String ob = txtObs.getText(); h.despertar(ho, mi, ob); } //como faço para quando eu acionar o botão pelo action abaixo, chamar um método do objeto que está instanciado aí em cima..ou tem outra forma? private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { //aqui eu precisaria fazer isso.. h.cancelar(); } //obs: não posso criar uma variável"Agendamentos" que seja global porque vou instanciar vários destes objetos ao mesmo tempo... [/code]
Java Básico Threads Jovani Pessoal Não funcionou o que esperava que funcionasse. Eu preciso fazer um despertador, onde eu possa programar alguns horários do dia e que o programa desperte nestes horários. Tentei fazer com while mas não dá certo, trava tudo. Tem como fazer isso com threads? Pegar a hora programada do alarme e ficar comparando com a do sistema até o programa despertar? Se tiver tem como me mostrar um exemplo deste laço com thread? Valeu!!
Java Básico TrayIcon sim ou não? Jovani Prezados Estou tentando fazer uma aplicação parecida com um despertador, onde eu vou lançar uma hora do dia e quando chegar nesta hora será exibido uma msg, ou alarme, enfim, esta parte está feita. Pesquisei então, um pouco sobre TryIcon, para tentar fazer esta aplicação ficar rodando em segundo plano, mas minimizada lá perto do relógio, e encontrei vários locais dizendo que java não era p/ isso, que seria necessário programar em C ou até assembler e tal (porém estas informações são de fontes antigas). Minha dúvida é a seguinte... vale a pena eu seguir pesquisando e tentar implementar com Try Icon ou ainda é mais viável partir para outra idéia?
Java Básico Bloquear txt Jovani Prezados Existe alguma forma de bloquear ou esconder arquivos txt que vou utilizar como mini banco de dados para uma aplicação java? O Objetivo é que ninguém consiga ver ou alterar.
Java Básico Chamar botão/método quando abre aplicação Jovani [quote="jefferson947"][quote="Jovani"]Prezados Como faço para chamar o comando de um botão quando abro a aplicação? Exemplo: Tenho uma aplicação que quando aberta exibe uma tela que é uma txtArea, e tem um botão "ATUALIZAR" que quando eu clico, exibe nesta tela o conteúdo de um arquivo txt. Mas eu gostaria que quando o aplicativo fosse aberto a tela da txtArea já estivesse atualizada com estes dados. OBS. Eu criei a tela, os botões tudo arrastando no NetBeans. [code] //esse é o main public static void main(String[] args) { TelaDiario t = new TelaDiario(); t.setResizable(false); t.setLocationRelativeTo(null); t.setVisible(true); t.setRegiao(); } //esse é o método do acionamento do botão private void btnLerActionPerformed(java.awt.event.ActionEvent evt) { ....} //tentei fazer conforme abaixo mas não deu... t.btnLerActionPerformed(java.awt.event.ActionEvent evt); [/code] [/quote] Você pode colocar os comandos do botão abaixo do comando [b]initComponents();[/b] ou também você pode colocar os comandos no evento WindowActivated do seu frame. Se entendi bem sua dúvida acho que isso vai funcionar, mas testa isso que eu disse e qualquer coisa que não funcionar é só perguntar. Abraços. :-) [/quote] Valeu Jeferson! Era isto mesmo!! Funcionou!
Java Básico Chamar botão/método quando abre aplicação Jovani Prezados Como faço para chamar o comando de um botão quando abro a aplicação? Exemplo: Tenho uma aplicação que quando aberta exibe uma tela que é uma txtArea, e tem um botão "ATUALIZAR" que quando eu clico, exibe nesta tela o conteúdo de um arquivo txt. Mas eu gostaria que quando o aplicativo fosse aberto a tela da txtArea já estivesse atualizada com estes dados. OBS. Eu criei a tela, os botões tudo arrastando no NetBeans. [code] //esse é o main public static void main(String[] args) { TelaDiario t = new TelaDiario(); t.setResizable(false); t.setLocationRelativeTo(null); t.setVisible(true); t.setRegiao(); } //esse é o método do acionamento do botão private void btnLerActionPerformed(java.awt.event.ActionEvent evt) { ....} //tentei fazer conforme abaixo mas não deu... t.btnLerActionPerformed(java.awt.event.ActionEvent evt); [/code]
Java Básico Leitura arquivo txt Jovani Prezados Tenho um arquivo txt formatado da seguinte forma: 17/04/2015 - obs... 17/04/2015 - obs... 16/04/2015 - obs... 16/04/2015 - obs.. . . . . Minha duvida é se tem como eu buscar informações neste arquivo e exibir em uma txtArea, mas filtrando por data, por exemplo --- exibir apenas as linhas onde a data for igual a 16/04/2015. Valeu!
Java Básico CheckBox Jovani [quote="staroski"]Não usa MouseListener pra isso Usa um ItemListener e no método itemStateChanged você verifica se o checkbox está selecionado usando o método isSelected [code] public void itemStateChanged(ItemEvent e) { txtExibe.setText(checCachoeira.isSelected() ? "Cachoeira do sul" : ""); } [/code] [/quote] Obrigado!!!
Java Básico CheckBox Jovani Prezados Como faço o seguinte: Tenho um checkBox e quando clico nele imprima numa TextArea um valor, e quando desflegar apague este valor? Eu consegui com o método check..getState(), mas no primeiro clique ele não printa nada, só quando desflego e flego denovo, aí ele começa a funcionar. abaixo está o evento que estou tentando, mas está com o erro que citei: [code] private void checCachoeiraMouseClicked(java.awt.event.MouseEvent evt) { if( checCachoeira.getState()==true){ txtExibe.setText("Cachoeira do sul"); } else txtExibe.setText(""); } [/code]
Java Básico Lógica Jovani Prezados Alguém tem uma idéia de lógica para esta divisão? -Tenho um array om 15 posições - {15,10,9,9,8,8,7,6,5,5,4,4,4,2,2} -OBS- estes valores podem mudar - Que logica posso utilizar para que em uma divisão destes valores, os resultados fiquem o mais parelho possível? Exemplo: se tiver 2 para dividir -> soma do array/2 = 98 ---- 98/2 = 49 preciso de uma lógica que verifique se a soma de alguns dos valores do array fecha em 49 ou bem próximo deste valor, mas que esta lógica funcione também para divisões por outros valores.
Java Básico Projeto vendas Jovani Não é dificil, faça a codificação e utilize um banco de dados, pode ser o MySQL, e poste as dúvidas.
Java Básico Enviar uma mensagem caso algum campo esteja em branco Jovani [quote="jeangt3"]Pessoal sou iniciante em Java, elabora uma gui com vários itens a serem preenchidos e nenhum campo podem ficar em branco, caso fique em branco deve retorna uma mensagem " Favor não deixar campos em branco" Tipo: public void associarEventos() { // Associa os eventos aos componentes Registrar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { Registrar_actionPerformed(e); ? void Registrar_actionPerformed(ActionEvent e) if ( se tiver algum campo em branco ??) JOptionPane.shwMessageDialog(null, ?Favor preencha todos os campos !?) Else (Se não tiver campo em branco ??) [/quote] Você pode fazer assim.. [code] void Registrar_actionPerformed(ActionEvent e){ if(campoTal.getText.equals("") ||campoTal.getText().equals("")||outroCampo.getText().equals("")){ JOptionPane.......(.."Todos os campos devem er preenchidos!");} else{ continua a ação do botão registrar....}} [/code]
Java Básico Aplicação com MySQL Jovani [quote="rodolfo.mendes"]Você não precisa instalar o MySQL em todo PC em que sua aplicação irá executar, você pode instalar o MySQL em um servidor e configurar o endereço de acesso (IP + porta) do servidor na aplicação instalada. [/quote] Entendi, obrigado!!
Java Básico Aplicação com MySQL Jovani Se eu fizer uma aplicação que utilize o MySQL, como um cadastro simples de clientes, por exemplo, e gerar um arquivo jar, e queira colocar para funcionar em outro pc, como fica? Neste outro pc eu terei que instalar o mysql? tem alguma maneira padrão de fazer isso? Não entendi como vou fazer uma aplicação q utilize um banco de dados que está no meu pc e depois utilizar esta aplicação em outro pc...
Banco de Dados - JDBC / SQL Erro de Sintaxe no Update Jovani Alguém sabe qual o erro de sintaxe no comando abaixo? [code] st.executeUpdate("UPDATE contatos SET telefone =" +editTelefone.getText()+ "WHERE nome = "+editNome.getText()); [/code] Está informando erro de sintaxe e dizendo que não foi encontrada a coluna "nome que eu informar no editNome" na clausula Where.
Java Básico Iniciação Jovani [quote="AdrianoS."]Olá pessoal, sou novo no site e não sei onde postar as perguntas, não sei se aqui é o local certo. Se puderem me ajudar, agradeço. [/quote] Olá, se a dúvida for sobre java básico, o local é aqui.
Java Básico Bloquear Telas no Swing Jovani Olá Se você colocar no banco de dados uma coluna tipo_de_usuario onde pode conter admin ou comum, e na validação do login fazer uma verificação se o usuario digitado é comum ou admin, após isso fazer a liberação das telas de acordo com cada tipo será que não daria certo? É só uma tentativa, não sou do ramo, apenas estou estudando java também...
Java Básico Criação de Vetores Jovani [quote="amanda1254"]Boa tarde Pessoal ! Estou criando um sistema básico, para exibir informações... Estou com problemas para incluir vetores, já que não serão dados inseridos pelo usuário : (g e j são objetos globais) public void incluirJogadores(){ Jogadores jogadores[] = new Jogadores[2]; jogadores[0].nome = "Valdívia"; jogadores[0].numero = 10; jogadores[0].posicao = "Atacante"; jogadores[0].salario = 1250300f; jogadores[1].nome = "Bruno"; jogadores[1].numero = 1; jogadores[1].posicao = "Goleiro"; jogadores[1].salario = 520360f; } public void listarJogadores(){ g = jogadores[1]; g.exibirDados(); g.listarPatrocinios(); j = jogadores[0]; j.exibirDados(); j.listarPatrocinios(); } podem me ajudar ? [/quote] Explica melhor sua duvida, não ficou muito claro qual o seu real problema, e posta suas classes todas também.
Java Avançado Aprendi os conceitos básico de java, e agora? Jovani [quote="Master_Developer"]Não sei mais o que aprender, quando eu procuro uma apostila ela vem desde o início e pelo início eu já passei, quero aprofundar o meu conhecimento. O que posso aprender agora? PS: Não estou dizendo que sou o "bonzão", só quero dizer que o básico eu já aprendi. [/quote] Cara, minha dica he a seguinte, tenta implementar algum sistema , que sempre vai ter algo novo para VC aprender, começa observar os sistemas de locais que VC frequenta e tenta fazer algo parecido.
Banco de Dados - JDBC / SQL Java com MySQL Jovani [quote="Uoston"]Olá galera, estou com um problema que acredito ser simples. No meu sistema tenho uma tela de login, que valida o usuário e senha a partir de um banco MySQL, mas ele só está validando o usuário que encontra-se na primeira posição, como faço pra ele validar qualquer usuário cadastrado? Segue o código da minha fabrica de conexões: public class FabricadeConexao { public Connection con; public Statement stmt; public ResultSet rs; public void abrirConexao(){ try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost/caixa", "root", "Santos2010"); stmt = con.createStatement(); }catch(Exception e){ System.out.println("Não foi possivle encontrar"); } } public static void main(String[] args){ FabricadeConexao fab = new FabricadeConexao(); fab.abrirConexao(); System.out.println("Conexão aberta"); } Código de evento do Botão entrar (que da acesso ao sistema) try{ fb.abrirConexao(); fb.stmt=fb.con.createStatement(); String sql; sql = "SELECT nome, senha FROM usuarios"; fb.rs = fb.stmt.executeQuery(sql); fb.rs.first(); if(login.getText().equals(fb.rs.getString("nome")) && senha.getText().equals(fb.rs.getString("senha"))){ JOptionPane.showMessageDialog(null, "Acesso Liberado"); sistema sis = new sistema(); sis.setVisible(true); sis.setExtendedState(JFrame.MAXIMIZED_BOTH); dispose(); }else{ JOptionPane.showMessageDialog(null,"Usuario não cadastrado"); } }catch(SQLException e){ } } [/quote] Olá Não tive tempo de olhar o seu código, mas segue abaixo um código que tenho de acesso exatamente para uma ação do botão de validação de usuário e senha, validando estes no banco Mysql. [code] try { //Registra JDBC driver Class.forName("com.mysql.jdbc.Driver"); //Abrindo a conexão Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/login?zeroDateTimeBehavior=convertToNull", "root", ""); //Executa a query de seleção java.sql.Statement st = conn.createStatement(); st.executeQuery("select * from usuarios"); ResultSet rs = st.getResultSet(); //verifica os usuarios no banco while (rs.next()) { if(rs.getString("usuario").equals(txtNome.getText()) && rs.getString("senha").equals(txtSenha.getText()) ){ encontrou = true;//esta variável está declarada no início da classe Tela t = new Tela();//instancia a tela de acesso apos o login correto t.setVisible(true); dispose(); user = rs.getString("usuario"); t.usuario.setText(user);} } if(encontrou !=true){ JOptionPane.showMessageDialog(rootPane, "Dados Incorretos!"); } } catch (SQLException | ClassNotFoundException e) { JOptionPane.showMessageDialog(null, e); }//Fim try [/code]
Java Básico Ajuda com JOptionPane Jovani Olá Você importou as classes corretamente para uso do JOptionPane? As variáveis contadorH e contadorM estão inicializadas? Manda o erro que está ocorrendo ou sua classe completa, pois não encontrei nenhum erro no código do JOptionPane que vc informou.
Java Básico Ajuda ! Jovani [quote="M_ds"] Oi oi sou novo por aqui e preciso de uma ajuda nesse algoritmo aqui : import java.util.scanner; public class plim{ public stativ void main(String[] args) { Scanner entrada = new Scanner(System.in); float num1; float num2; float num3 = num1*num2; // declarando variaveis float num4 = 0.3; float num4 = 30; System.out.printf("Digite a potência do aparelho: "); // imprimindo na tela o que o usuario deve digitar num1 = entrada.nextFloat(); // lendo o que o usuário digitou System.out.printf("digite o tempo em que o aparelho eh utilizado por dia : "); num2 = entrada.netFloat(); System.ou.printf("%.2f * %.2f = %.2f\n", num1, num2, num1 * num2); // calculando a operação algebrica e impriminto o resultado na tela try { Thread.sleep(TEMPO_EM_MILISEGUNDOS); } catch(Exception e) { // pausa no sistema System.out.printl("Continuando..."); } system.out.printf("%.2f * %.2f* %.2f = %.2f\n, num3, num4, num5, num3 * num4 * num4); // calcuando consumo mensal de energia } Eu ainda sou bem leigo , mas o que queria fazer é um algoritmo que calcule o valor de um conta de energia . [/quote] Acho que o código abaixo realiza o cálculo que você precisa. Considerando que ele calcula apenas o total consumido de 1 aparelho. Para um cálculo real da conta de energia precisaria de um código bem mais elaborado. [code] import java.util.Scanner; public class ContaEnergia { public static void main(String args[]) { double potencia;//potencia do aparelho int mes = 30;//quantidade de dias no mes considerada pela ANEEL double valor; //variavel que receberá o valor total da conta double precoKwH = 0.30; // valor do Ww/h Scanner entrada = new Scanner(System.in); System.out.printf("Potencia do aparelho: ");//entrar com a potencia do aparelho potencia = entrada.nextDouble(); System.out.printf("Tempo de utilizacao por dia(em horas): ");//entrar com a quantidade de horas de utilização por dia double tempo = entrada.nextDouble(); valor = (((potencia/1000)*tempo))*mes*precoKwH;//cálculo do preço total da conta double KwH = ((potencia/1000)*tempo) * mes;//cálculo da quantidade de Kw/h consumidos no mes System.out.println("\nConsiderando que foi utilizado um aparelho com "+potencia+" watts..."); System.out.println("durante "+tempo+" horas por dia, durante 30 dias..."); System.out.println("com o valor do Kw/h a R$ "+precoKwH); System.out.println("o Valor da conta seria R$..."); System.out.printf( "%.2f", valor ); //valor da conta com limitação de duas casas decimais System.out.println("\nKw/h consumidos no mes..."); System.out.printf( "%.2f", KwH); //quantidade de Kw/h com limitação de duas casas decimais } }[/code]
Java Básico Problema no programa para repetição Jovani [quote="w0nderfull"][quote="Jovani"] Se for somente desktop (sem interface gráfica) assim funciona... [code] import java.util.Scanner; public class Week { public static void main(String args[]){ Scanner dados = new Scanner(System.in); int op = 100; while(op!=0){ System.out.println("Digite um numero"); op = dados.nextInt(); switch(op){ case 1: System.out.println("Domingo"); break; case 2: System.out.println("Segunda-Feira"); break; case 3: System.out.println("Terca Feira"); break; case 4: System.out.println("Quarta-Feira"); break; case 5: System.out.println("Quinta-Feira"); break; case 6: System.out.println("Sexta-Feira"); break; case 7: System.out.println("Sabado"); break; } } } } [/code] [/quote] Tipo, só pra entender melhor, pq declarou op com valor 100? [/quote] Para não dar erro de "variável não inicializada" no teste while(op!=0).... poderia ser outro valor qualquer, menos zero, senão a aplicação nem iria abrir.
Off-Topic Dúvida Árvores de pesquisa Jovani Podem me confirmar se as questões de V ou F abaixo estão corretas conforme marquei? a.( F ) Em uma árvore AVL, os nodos são inseridos de forma não ordenada, isto é, ela não mantém ordem dos elementos como uma árvore binária de pesquisa. os nodos são inseridos de forma ordenada. b.( F ) Em uma árvore genérica, cada nodo pode ter no máximo 2 filhos, ou seja, grau 2. uma árvore genérica pode ter mais de 2 filhos c.( V ) Em uma árvore AVL, cada nodo pode ter no máximo 2 filhos, ou seja, grau 2. d.( V ) Em uma árvore AVL o fator de um nodo é calculado pela diferença na altura de suas subárvores. e.( F ) Em uma árvore genérica cada nodo contém o valor do nodo (chave) e uma lista encadeada que aponta para seus nodos filho. falso pois ainda contém o grau do nó.
Java Básico Problema no programa para repetição Jovani [quote="w0nderfull"]Olá, gostaria de pedir a seguinte a ajuda... Como o meu professor da faculdade mandou a gente se virar para aprender java, queria saber o seguinte. Tenho q fazer um programa onde o usuário digite um número de 1 a 7, e o programa imprima o dia correspondente àquele número. Essa parte eu já consegui fazer, mesmo ainda com certas dúvidas. O problema é que agora ele quer q nesse mesmo programa, ele fique repetindo o procedimento de perguntar um número e imprimir o dia, enquanto o número q o usuário digitar for diferente de 0. eu tentei colocar While, mas o programa ficar repetindo a resposta sem parar e não volta para o usuário digitar outro número. como eu faço? [/quote] Se for somente desktop (sem interface gráfica) assim funciona... [code] import java.util.Scanner; public class Week { public static void main(String args[]){ Scanner dados = new Scanner(System.in); int op = 100; while(op!=0){ System.out.println("Digite um numero"); op = dados.nextInt(); switch(op){ case 1: System.out.println("Domingo"); break; case 2: System.out.println("Segunda-Feira"); break; case 3: System.out.println("Terca Feira"); break; case 4: System.out.println("Quarta-Feira"); break; case 5: System.out.println("Quinta-Feira"); break; case 6: System.out.println("Sexta-Feira"); break; case 7: System.out.println("Sabado"); break; } } } } [/code]
Java Básico JTable com MySQL sem código Jovani Olá Tentei fazer a aplicação conforme o link abaixo, mas quando vou testar o código não abre tela alguma. Sabem o que pode estar ocorrendo? Tenho o banco criado certinho com id auto increment e chave primária, e também instanciei a tela no main como setVisible(true), ele roda mas não abre tela nenhuma p/ mim. http://www.youtube.com/watch?v=pj9eTCQa2VA&feature=youtu.be
Java Básico Árvore Genérica - método Jovani [quote="staroski"]Não conhecemos o fonte da classe GeneralTree, não temos como adivinhar como ela foi escrita. ;) [/quote] é verdade, desculpe, segue abaixo... [code] public class GeneralTree { private Object key; private int degree; private List list; public Object getKey () { return key; } public GeneralTree (Object key) { this.key = key; degree = 0; list = new List (); } public GeneralTree getSubtree (int i) { if (i < 0 || i >= degree) throw new IndexOutOfBoundsException (); Node ptr = list.getFirst (); for (int j = 0; j < i; ++j) ptr = ptr.getNext (); return (GeneralTree) ptr.getData (); } public void attachSubtree (GeneralTree t) { list.insertAtBack (t); ++degree; } public GeneralTree detachSubtree (GeneralTree t) throws UnderflowException { list.remove (t); --degree; return t; } } //classe node public class Node { private Object data; private Node nextNode; private Node previousNode; public Node( Object element ) { this( element, null ); } public Node( Object element, Node node ) { data = element; nextNode = node; } public Object getData() { return data; } public void setData (Object element){ data = element; } public Node getNext() { return nextNode; } public void setNext(Node n) { nextNode = n; } public Node getPrevious() { return previousNode; } public void setPrevious(Node n) { previousNode = n; } } //classe List public class List { private Node firstNode; private Node lastNode; private String name; public List() { this("list"); } public List(String listName) { name = listName; firstNode = lastNode = null; } public Node getFirst() { return firstNode; } public Node getLast() { return lastNode; } public boolean isEmpty() { return firstNode == null; } public void insertAtFront(Object insertItem) { Node n = new Node(insertItem); if (isEmpty()) firstNode = lastNode = n; else { firstNode.setPrevious(n); n.setNext(firstNode); firstNode = n; } } public void insertAtBack(Object insertItem) { Node n = new Node(insertItem); if (isEmpty()) firstNode = lastNode = n; else { lastNode.setNext(n); n.setPrevious(lastNode); lastNode = n; } } public Object removeFromFront() throws UnderflowException { if (isEmpty()) throw new UnderflowException(); Object removedItem = firstNode.getData(); if (firstNode == lastNode) firstNode = lastNode = null; else { firstNode = firstNode.getNext(); firstNode.setPrevious(null); } return removedItem; } public Object removeFromBack() throws UnderflowException { if (isEmpty()) throw new UnderflowException(); Object removedItem = lastNode.getData(); if (firstNode == lastNode) firstNode = lastNode = null; else { Node penultimo = lastNode.getPrevious(); lastNode = penultimo; lastNode.setNext(null); } return removedItem; } public boolean remove(Object o) throws UnderflowException { Node current = firstNode; if (isEmpty()) return false; else if (firstNode.getData().equals(o)) { removeFromFront(); return true; } else if (lastNode.getData().equals(o)) { removeFromBack(); return true; } while (current != null) { if (current.getData().equals(o)) { Node next = current.getNext(); Node previous = current.getPrevious(); previous.setNext(next); next.setPrevious(previous); next = null; return true; } current = current.getNext(); } return false; } public void print() { if (isEmpty()) { System.out.println("Empty " + name); return; } System.out.print("The " + name + " is: "); Node current = firstNode; while (current != null) { System.out.print(current.getData().toString() + " "); current = current.getNext(); } System.out.println("\n"); } } //classe underflow... public class UnderflowException extends Exception { public String toString() { return "UNDERFLOW!"; } } [/code]
Java Básico Árvore Genérica - método Jovani Prezados Estou estudando a parte de Árvores genéricas, e preciso criar um método que conte os nós da árvore, mas não estou conseguindo. Estou tentando fazer com base no método abaixo, que imprime os dados da árvore, mas não está dando certo. Alguém pode me ajudar?Acho q se inserir um contador em algum ponto do método print, pode ser q conte os nós, mas não esta funcionando. [code] public void print(GeneralTree T){ System.out.println(T.getKey().toString()); printr(T); } public void printr(GeneralTree T){ Node current = (Node) T.list.getFirst(); GeneralTree gt; for(int i=0; i<T.degree; i++){ gt = (GeneralTree) current.getData(); System.out.println(gt.getKey().toString()); printr(gt); current = current.getNext(); } [/code]
Java Básico Abertura aplicativo Jovani Olá Sabem se tem como fazer uma aplicação em java.jar, que quando eu clicar para abrir o aplicativo, exiba uma tela de abertura até que a aplicação seja aberta?
Java Básico Dúvida MySQL sintaxe Jovani Prezados, estou tentando fazer uma aplicação gráfica com uso de MySQL. Qual erro de sintaxe no código abaixo? [code] private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { int conta = 123; int senha = 1234; try { //Registra JDBC driver Class.forName("com.mysql.jdbc.Driver"); //Abrindo a conexão: ATENÇÃO OS DOIS PARÂMETROS VAZIOS("") SÃO USUÁRIO E SENHA, RESPECTIVAMENTE. Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/banco?zeroDateTimeBehavior=convertToNull", "root", ""); //Executa a query de inserção java.sql.Statement st = conn.createStatement(); st.executeUpdate("INSERT INTO cliente (id,nome,conta,rua,numCasa,cidade,senha,saldo,limite,tipoconta) VALUES (" +null+ ",'" +this.nome.getText() + "','" +conta+ ",'" +this.rua.getText() + ",'" +this.numero.getText()+ ",'" +this.cidade.getText() + "','" +this.senha+ ",'" +this.saldoInicial.getText() + "','" +this.limite.getText() + "','" +this.tipoDeConta.getText()+ "')"); JOptionPane.showMessageDialog(rootPane, "Contato salvo!"); } catch (SQLException | ClassNotFoundException e) { JOptionPane.showMessageDialog(rootPane, e); }//Fim try } [/code] não consegui anexar o print do erro,mas é algo sobre a sintaxe tipo " check the manual that corresponds to your mysql server version for the right sintaxe to use near 'rua', 'n, 'cidade', '123', 'saldo','limite', 'tipoconta'.... lembrando que é a primeira vez q tento fazer isso, então pode ser algo bem básico q esteja errado. Já testei a conexão com o banco e está ok.
Java Básico Variável não inicializada Jovani [quote="staroski"]Mas ela realmente não foi inicializada quando ele executar o case 2. Você declara ela no case 1 e só inicializa no case 1. Se você vai referenciar a mesma variável em cases diferentes, dentro de um laço, deverá declarar ela fora do laço: [code] public class BSTTeste { public static void main(String args[]) { int op = 0; BST arvore = null; while(op!= 7) { System.out.print('\u000C'); System.out.println(); System.out.println("1 - Inserir valor"); System.out.println("2 - Buscar valor"); System.out.println("3 - Percurso em..."); System.out.println(" a - Em ordem;"); System.out.println(" b - Pre ordem;"); System.out.println(" c - Pos ordem;"); System.out.println("4 - Numero de nodos folha"); System.out.println("5 - Altura"); System.out.println("6 - Numero total de nodos"); System.out.println("7 - Sair"); op = Teclado.leInt("\nDigite a opcao: "); switch(op) { case 1: arvore = new BST(); arvore.insert(Teclado.leInt(" >>>Valor a ser inserido: ")); String subMenu = Teclado.leString("\nDeseja inserir mais valores?(s/n)> ;"); while(subMenu.equals("s")){ arvore.insert(Teclado.leInt(" >>>Valor a ser inserido: ")); subMenu = Teclado.leString("\nDeseja inserir mais valores?(s/n)> ;"); } break; case 2: int valor = Teclado.leInt("\nValor procurado: "); System.out.println(arvore.search(valor)); } } } } [/code] [/quote] Resolvido, obrigado!
Java Básico Variável não inicializada Jovani Caros como consigo resolver este erro? Estou tentando implementar o menu conforme o código abaixo, mas na opção 2, quando tento compilar está retornando _variável "arvore" não inicializada.(circulando a "arvore" que está na última linha do código da classe de teste. [code] public class BSTTeste { public static void main(String args[]) { int op = 0; while(op!= 7) { System.out.print('\u000C'); System.out.println(); System.out.println("1 - Inserir valor"); System.out.println("2 - Buscar valor"); System.out.println("3 - Percurso em..."); System.out.println(" a - Em ordem;"); System.out.println(" b - Pre ordem;"); System.out.println(" c - Pos ordem;"); System.out.println("4 - Numero de nodos folha"); System.out.println("5 - Altura"); System.out.println("6 - Numero total de nodos"); System.out.println("7 - Sair"); op = Teclado.leInt("\nDigite a opcao: "); switch(op) { case 1: BST arvore = new BST(); arvore.insert(Teclado.leInt(" >>>Valor a ser inserido: ")); String subMenu = Teclado.leString("\nDeseja inserir mais valores?(s/n)> ;"); while(subMenu.equals("s")){ arvore.insert(Teclado.leInt(" >>>Valor a ser inserido: ")); subMenu = Teclado.leString("\nDeseja inserir mais valores?(s/n)> ;"); } break; case 2: int valor = Teclado.leInt("\nValor procurado: "); System.out.println(arvore.search(valor)); } } } } [/code] Classe completa [code] public class BST { //Atributo que armazena uma referencia a raiz da arvore protected BSTNode root = null; /** Construtor padrao **/ public BST() { root = null; } /** Elimina todos os nodos da arvore **/ public void clear() { root = null; } /** Verifica se a arvore esta vazia **/ public boolean isEmpty() { return root == null; } /** Retorna uma referencia ao nodo raiz da arvore **/ public BSTNode getRootNode (){ return root; } /** Insere um novo nodo na arvore binaria de pesquisa contendo a chave especificada pelo parametro el **/ public boolean insert(int el) { BSTNode p = root, prev = null; // caso o valor ja exista na arvore, nao inserir e retornar false if (search(el)!=null) return false; // procurando um lugar para colocar o novo nodo while (p != null) { prev = p; if (el<p.key) p = p.left; else p = p.right; } // se arvore vazia, nodo sendo inserido vira raiz da arvore if (root == null) root = new BSTNode(el); else if (prev.key<el) prev.right = new BSTNode(el); else prev.left = new BSTNode(el); return true; } /** Retorna uma referencia ao nodo que contem a chave especificada pelo parametro el **/ public BSTNode search(int el) { return search(root,el); } /** Versao protegida do metodo search. Esta versao do metodo e utilizada pela versao publica, que sempre inicia a busca a partir do nodo raiz. **/ protected BSTNode search(BSTNode p, int el) { while (p != null) { /* se valor procurado == chave do nodo retorna referencia ao nodo */ if (el==p.key) return p; /* se valor procurado < chave do nodo, procurar na sub-arvore esquerda deste nodo */ else if (el<p.key) p = p.left; /* se valor procurado > chave do nodo, procurar na sub-arvore direita deste nodo */ else p = p.right; } // caso chave nao foi encontrada, retorna null return null; } public void max(){ max(root); } protected void max(BSTNode n){ if(n.right!=null) max(n.right); else System.out.println(n.key); } public int somaMaior(int el) { return somaMaior(root, el); } protected int somaMaior(BSTNode p, int el) { if (p != null) { if(p.key > el) return p.key + somaMaior(p.left, el) + somaMaior(p.right, el); else return 0 + somaMaior(p.left, el) + somaMaior(p.right, el); } return 0; } // public int countNodes() //conta os nodos da árvore { return countNodes(root); } protected int countNodes(BSTNode p) { if (p == null) return 0; else return 1 + countNodes(p.left) + countNodes(p.right); } // public int countLeafNodes()//conta nodos folha da árvore { return countLeafNodes(root); } public int countLeafNodes(BSTNode p) { if (p == null) return 0; if(p.left == null && p.right == null) return 1; return countLeafNodes(p.left)+ countLeafNodes(p.right); } // /** Retorna uma referencia ao pai do nodo que contem a chave especificada pelo parametro el. **/ protected BSTNode searchFather (int el) { BSTNode p = root; BSTNode prev = null; while (p != null && !(p.key==el)) { // acha o nodo com a chave el prev = p; if (p.key<el) p = p.right; else p = p.left; } if (p!=null && p.key==el) return prev; return null; } // public int height()//retorna a altura da árvore { return height(root)-1; } protected int height(BSTNode p) { int alturaLeft; int alturaRight; if(p!=null) { alturaLeft = height(p.left); alturaRight = height(p.right); if(alturaLeft > alturaRight) return (alturaLeft+1); else return (alturaRight+1); } else return 0; } // public boolean isFull()//verifica se a árvore está completa { int totalDeNodos = this.countNodes(root); int alturaDaArvore = this.height(root); if(totalDeNodos == (Math.pow(2, alturaDaArvore)-1)) { return true; } else return false; } // /** Caminhamento em ordem. Visita a sub-arvore esquerda Visista o nodo Visita a sub-arvore direita **/ public void inorder() { inorder(root); } /** Versao protegida do metodo. Utilizada pela versao publica que sempre inicia a busca pelo nodo raiz **/ protected void inorder(BSTNode p) { if (p != null) { inorder(p.left); System.out.print(p.key + " "); inorder(p.right); } } /** Caminhamento em pre-ordem. Visita o nodo Visista a sub-arvore esquerda Visita a sub-arvore direita **/ public void preorder() { preorder(root); } /** Versao protegida do metodo. Utilizada pela versao publica que sempre inicia a busca pelo nodo raiz **/ protected void preorder(BSTNode p) { if (p != null) { System.out.print(p.key + " "); preorder(p.left); preorder(p.right); } } /** Caminhamento em p�s-ordem. Visita a sub-arvore esquerda Visita a sub-arvore direita Visista o nodo **/ public void postorder() { postorder(root); } /** Versao protegida do metodo. Utilizada pela versao publica que sempre inicia a busca pelo nodo raiz **/ protected void postorder(BSTNode p) { if (p != null) { postorder(p.left); postorder(p.right); System.out.print(p.key + " "); } } /** Remove o nodo que contem a chave especificada por el **/ public void delete(int el) { BSTNode node, father = null; node = search (el) ; // procura nodo a ser deletado if (node != null && node.key==el) { if (node!=root) father = searchFather (el); // procura pai do nodo a ser deletado if (node.right == null){ // nodo nao tem filho direito if (node==root) root= node.left; else if (father.left == node) father.left = node.left; else father.right = node.left; } else if (node.left == null) { // nodo nao tem o filho esquerdo if (node==root) root= node.right; else if (father.left == node) father.left = node.right; else father.right = node.right; } else { // nodo possui ambos os filhos BSTNode tmp = node.left; // 1. Obtem a raiz da sub-arvore esquerda do nodo a ser removido while (tmp.right != null) { // 2. Encontra o maior valor da sub-arvore esquerda do nodo a ser removido tmp = tmp.right; } delete(tmp.key); // 3. Remove da arvore o maior valor da sub-arvore esquerda do nodo a ser removido // Esta chamada recursiva deleta o nodo com maior valor (chave), que sempre sera um caso simples // nodo com um ou nenhum filho. node.key = tmp.key; // 4.Copia o valor (chave) do nodo removido para o nodo a ser removido } } else if (root != null) System.out.println("A chave " + el + " nao esta na arvore"); else System.out.println("A arvore esta vazia"); } } [/code][/quote]
Goto page 1 , 23  Next - >>