• Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

TwistedSoul

Membros Plenos
  • Total de itens

    124
  • Registro em

  • Última visita

  • Qualificações

    N/D

Reputação

44

1 Seguidor

Sobre TwistedSoul

Informações gerais

  • Cidade e Estado RS
  • Sexo Masculino

Meu PC

  • Processador Core i5 7600
  • Cooler Cooler Box
  • Placa de vídeo Galax Geforce GTX 1070
  • Placa-mãe MSI B250M VDH-Pro
  • Memória 8GB DDR4 Kingston HyperX 2133MHz
  • HDs Seagate Barracuda 1TB 7200RPM
  • SSDs Sandisk Pro 240GB
  • Gabinete Aerocool Aero 500
  • Fonte Corsair CX600
  • Mouse Corsair Scimitar
  • Headset Redragon Siren 2
  • Monitor LG 23MB35VQ
  • Sistema Operacional Windows 10 Pro

Outros

  • Ocupação Programador Java Fullstack
  1. @IvanJava boa noite. No seu caso é simples. Como nenhuma dessa ações ainda gerou uma entrada em banco e você está apenas manipulando e comparando Strings da tela. Na classe Login, crie um novo método, por exemplo public void loginFromCadastro(String usuario) { input_do_usuario.setText(usuario); } Então, depois de clicar em cadastrar e utilizar um //ao invés de fazer L.setVisible(true); //Faça L.loginFromCadastro(txtUser.getText()); L.setVisible(true); Outra coisa: ao comparar valores de um campo do tipo JPasswordField, JAMAIS use getText() como foi usado em algumas partes. Use sempre o getPassword(). A comparação entre eles também pode ocasionar erros. Veja que getText() retorna uma String, que é um objeto imutável e que permanece em memória até o Garbage Collector remover ele. O problema é justamente esse com uma senha: se ficar em memória pode ser lido por fontes externas e a senha roubada. Já o getPassword() retorna um array de char (char[]). Esse array pode ser modificado, mas precisa ser interceptado em tempo de execução (o que afeta a String também), mas ele não fica em memória depois de utilizado. Para comparar passwords de maneira segura e sem dores de cabeça, faça if (Arrays.equals(passwordField1.getPassword(), passwordField2.getPassword())) { // senhas iguais } else { // senhas diferentes }
  2. iDeas

    Java é retrocompatível. Qualquer aplicação Java feita numa versão anterior deve funcionar em versões mais recentes. Se não funciona tem alguma gambiarra feita aí. Tirando casos raros de incompatibilidade de bibliotecas, isso não deveria ser um empecilho. Provavelmente esse programa deve fazer uma busca numa pasta específica buscando essa versão do Java (bem tosquinho se realmente for isso). Normalmente você pode executar os programas apontando para a instalação antiga do Java. No prompt de comando, vamos supor que você está na pasta c:\iDeas c:\iDeas>"c:\program files(x86)\java\jdk6\bin\java.exe" -jar seu_arquivo.jar Pode colocar isso também como argumento no atalho do programa. Se nem isso funcionar, tenta achar algo no site ou lista de discussão/fórum do desenvolvedor do software. Outra que devem existir n versões desse programa. Saber a que você está tentando usar e o site dele também ajudaria.
  3. @Aline Silva_686179 Boa noite. Seria mais fácil se você colocasse aqui o trecho do seu código com o laço. Um ArrayList não tem limite teórico de tamanho. Se o laço está saindo quando digita zero, então está correto. O problema é que provavelmente você instanciou o objeto Triangulo apenas uma vez e fora do laço. SEMPRE que você iniciar o laço do while, você sempre deve criar uma nova instância de Triangulo. Java trabalho com ponteiros. Exemplo: Triangulo tri = new Triangulo(); List<Triangulo> result = new ArrayList<>(); //Agora, entramos no seu laço while (sua_condicao) { tri.setLado0(valor0_digitado); tri.setLado1(valor1_digitado); tri.setLado2(valor2_digitado); result.add(tri); } Neste exemplo,, se o seu laço for percorrido 10 vezes, TODOS os 10 objetos dentro da lista terão exatamente os mesmos valores. Porque? O objeto triângulo foi instanciado fora do laço apenas uma vez. Como Java trabalha com ponteiros, você atribuiu valores ás 3 variáveis do objeto Triangulo (tri) e adicionou ele na lista. Como o objeto é o mesmo (não existe outro new Triangulo()), cada vez que você altera os valores das variáveis no laço, os objetos já inseridos na lista serão atualizados para os valores do laço atual porque o objeto tri ainda possui a mesma referência em memória. Mas como resolver isso? Triangulo tri; List<Triangulo> result = new ArrayList<>(); //Agora, entramos no seu laço while (sua_condicao) { tri = new Triangulo(); tri.setLado0(valor0_digitado); tri.setLado1(valor1_digitado); tri.setLado2(valor2_digitado); result.add(tri); } Perceba a diferença sutil. A cada nova iteração do seu laço, temos o tri = new Triangulo(); Dessa forma, um novo objeto será criado em memória e seus dados não serão mais alterados depois de atribuídos. Assim, todos os objetos inseridos nessa lista terão os valores que o usuário digitou em cada laço.
  4. @ÉlissonMoura Boa noite int resposta = JOptionPane.showConfirmDialog (null, "Você gostaria de sair?", "Qualquer coisa para título da janela", JOptionPane.YES_NO_OPTION); if(resposta == JOptionPane.YES_OPTION){ // Seu código caso SIM } else { //Seu código para NÃO }
  5. @Nadson A. , boa noite, Uma breve pesquisa do mercado norte americano do mês passado indicou isso: Java Python JavaScript C++ C# Ruby PHP Perl Objective-C C Java é uma linguagem super requisitada, atual e poderosa. A pessoa que te disse que não vale a pena investir em Java realmente não conhece NADA do mercado de desenvolvimento de software. Abraço EDIT: esta reportagem, de um ano atrás, é bem interessante https://www.javacodegeeks.com/2016/06/java-vs-net-vs-python-vs-ruby-vs-node-js-reigns-job-market.html
  6. @toddy700 Boa noite. Sem saber nada de programação e fazer um GPS estilo Waze eu diria que é impossível. Primeiro porque você precisa fazer seu app se comunicar com o hardware do aparelho, acionar o GPS e interagir com a interface dele. Fora isso, se for algo a lá Waze, onde você vai arranjar os dados de mapa para fazer o navegador do GPS mostrar onde você está?
  7. @Aline Silva_686179 Boa noite A resolução desse problema é relativamente simples. Crie uma classe Triangulo public class Triangulo { private int lado0; private int lado1; private int lado2; //Construtor //Getter e Setters } Crie um ArrayList desse tipo de objeto: List<Triangulo> listaTriangulos = new ArrayList<>(); Depois, crie uma classe para cada tipo de triângulo. Exemplo: public class TrianguloIsosceles extends Triangulo{ private String cor; //Construtor //Geters e Setters } Depois, faça os cálculos para saber que tipo de triângulo o usuário digitou com as medidas. Vamos supor que as medidas resultaram em um triângulo isósceles. Atribua os valores digitados a um novo objeto do tipo TrianguloIsosceles() TrianguloIsosceles triIs = new TrianguloIsosceles(lado0, lado1, lado2); Depois disso, coloque um prompt e peça ao usuário para digitar a cor do seu triângulo isósceles. Depois de capturar a cor: triIs.setCor(corDigitada); Agora que você tem todas as características desse triangulo, adicione ele a lista: listaTriangulos.add(triIs); Depois que o usuário terminar de inserir dados, totalize. A quantidade de triângulos é listaTriangulos.size(); Para contar para um deles: int triangulosIsosceles = 0; //siga com cada tipo de triangulo //Depois faça um for for (Triangulo tri : listaTriangulos) { if (tri instanceof TrianguloIsosceles) { triangulosIsosceles++; } else if (tri instanceof TrianguloEquilatero) { triangulosEquilateros++; } } Com isso você resolve facilmente o problema.
  8. @shaketoi Boa noite. E o que você precisa de ajuda nesse programa? Coloque aqui seu código e suas dúvidas que ajudaremos com dicas e exemplos.
  9. @Jose Silveira Boa noite. Você não especifica isso na JTable. É no DefaultTableModel que isso é feito. int h = 0; DefaultTableModel model = suaJTable.getModel(); h = suaJTable.getRowCount() + 1; //nesse caso, pegamos a quantidade de linhas existentes na table e adicionamos mais 1. //Você pode passar o valor 10 do exemplo aqui model.setRowCount(h); //Depois, você insere as colunas da linha h. Model sem dados = table vazia. suaJTable.setValueAt("uma string qualquer", h, 1); suaJTable.setValueAt("outra string qualquer", h, 2); //Linhas filler sem nada dentro não fica legal. Pra que exibir algo que não existe? No máximo use suaJTable.setFillsViewportHeight( true ); //isso vai preencher o fundo da tabela (que não tem linhas) com a cor de fundo da aplicação dando um aspecto melhor.
  10. @Augusto G rocha Boa noite. Em momento algum no seu código está especificado que 1 = Galáxia. Isso aparece apenas no seu texto escrito em tela. Sua variável Cluster inicia com letra maiúscula, o que me levou a crer que era uma classe, mas era apenas uma variável int. Pelas boas regras de programação, deveria ser com letra minúscula Ao invés de cluster ser um int, porque não faz um Enum? O seu enum pode retornar uma descrição de acordo com o ID devolvido se ele for feito dessa forma. Ou, no seu caso, se você tiver mais de duas opções, faça um if para cada inteiro retornado e devolva o texto correspondente a cada um deles.
  11. @feoliveira Bom dia. Não podemos fazer o trabalho pra você. Tente resolver ele e vá postando aqui suas dúvidas junto com o código que vamos dando dicas até que você resolva.
  12. @KenshiYoung Não seria melhor vocês decidirem uma pasta padrão para deixar as bibliotecas e através do seu versionador (GIT, Subversion, etc) apontar pastas novas a cada versão? Essa pasta que você fala é simplesmente onde ficam as libs default do JRE. Não é muito inteligente colocar as libs da sua aplicação dentro dela. Pelo menos foi isso que entendi da sua pergunta. Agora, se você não coloca as libs da aplicação nessa pasta, porque vocês estariam importando libs default do Java?
  13. Tentou instalar através de linha de comando com sudo?
  14. @Lucio Carvalho É simples. Leia o campo e de acordo com a resposta (true ou false), coloque o texto desejado. Exemplo String msgTemAr = "ArCondicionado: "; leito.arCondicionado() ? msgTemAr.concat("Sim") : msgTemAr.concat("Não"); Basicamente, leia se a variável é true para escrever "Sim" e false para escrever "Não". Você pode também criar um método que retorne "Sim" ou "Não" de acordo com o estado da variável booleana. Outra coisa: seu método boolean arCondicionado(){ if(this.arCond){ return true; }else return false; } } É totalmente desnecessário. Seu método deveria ser apenas boolean arCondicionado(){ return this.arCond; } É uma variável booleana. A resposta é ela mesma. No seu método, você faz mais ou menos assim: - A variável é TRUE? Então retorne TRUE. - A variável é FALSE? Então retorne FALSE. Como a própria variável já está em seu estado final, o correto seria apenas - Retorne a variável Abraço
  15. @ErikMendesRX Boa tarde. Isso é simples de fazer. Você pode informar um campo boolean se o cliente é "normal" ou não. A partir disso você pode diferenciar. Seria como cadastrar clientes através de CPF (pessoa física) e pessoa jurídica (CNPJ). Sobre pesquisar por região, inclua no cadastro do usuário o seu endereço detalhado (rua, número, cidade, bairro, CEP, estado) e através destes dados monte seu filtro de pesquisa.