Alguém pode me ajudar

35 respostas
jframenetbeansjava
Lacan

Eu quero aprender fazer que a minha tela do meu Jframe mude sem ter que chamar outra (pois eu tenho um exercicio de 80 palavras ai não quero ter que abrir 80 telas, pois é a unica coisa que eu sei)

35 Respostas

darlan_machado

E qual a dificuldade, jovem? Já pensou em estudar, pegar alguns livros, apostila, tutorial, vídeo aula?

Lacan

esse é o problema mano eu já tentei isso, procurei video aulas (aprendi novas coisa alias) mas não aprendi o que eu queria, pedi ajuda para o meu professor e ele ainda não respondeu

Lacan

tava estudando pelo site Java Progressivo e também não achei

darlan_machado

O que ocorre é que é um processo bastante complicado e, talvez, mais custoso que criar telas diferentes para cada coisa.
Veja, você precisará:

  • Definir os componentes que estão sendo exibidos como setVisible(false) e, talvez, inativar os mesmos (setDisabled(true))
  • Garantir que toda a estrutura do JFrame está limpa
  • Identificar os componentes a serem exibidos na sequência
  • Setar os componentes a serem exibidos como setVisible(true) e setDisabled(false)
  • Repetir isso para todas as atualizações.

Pense na quantidade de componentes a serem criados, pense na forma de desenvolver isso, sem se confundir, sem ter uma classe estratosfericamente gigante.
Eu acho inviável.

willvideira

Da uma estudada no JInternalFrame, acho que com ele vc consegue fazer o que quer

https://docs.oracle.com/javase/tutorial/uiswing/components/internalframe.html

Lacan

Vou tentar, MUITO Obrigado mano, eu pensei que assim um iria ficar tirando o outro mas não

Lacan

vou estudar agora, muito obrigado

darlan_machado

Usar JInternalFrame é uma opção. Porém, você ainda precisará programar todas as telas, em cada JInternalFrame.

willvideira

Sim fato, mas a programação dele fica um pouco menos poluida(se é que se pode dizer isso kkkk)

darlan_machado

Acho que o meu conceito de poluição e o teu são distintos.
A não ser que ele isole cada JInternalFrame em uma sub classe distinta, ele terá um monte de código amontoado e isso é péssimo.
Por isso eu disse que a melhor abordagem seria criar cada JFrame isolado.
Uma pena não existir um template, como o delphi possui

A

Quando você diz 80 telas, o que muda de uma para outra? O layout é diferente? Cada tela faz realmente uma coisa diferente?

Lacan

Darlan, fiz isso, o programa ficou perfeito, como eu imaginei ele saiu, porém na hora de entregar o trabalho na escola ele simplesmente não abriu, eu testei no outro pc e nada também, porém quando eu cheguei em casa ele abriu normal, você tem ideia do que pode ter sido?

darlan_machado

Pode ser a versão do JDK, pode ser que tenha faltado alguma coisa na hora de gerar o jar.

Lacan

a versão do meu o a do PC deles?

darlan_machado

De ambos, né? A tua pode ser uma versão e a do outro, outra.
Mas, a maneira mais eficaz de descobrir problemas é sempre colocar logs e invocar a aplicação via linha de comando. Assim, o que houver de erro fica na linha de comando e você pode consultar.

Lacan

mano, não entendi, pode me dizer como fazer?

darlan_machado

Vamos supor que você exportou o projeto para um jar e o nome do jar é projeto_java.jar, ok? Depois você troca esse nome pelo nome do jar que você criou.
Abra uma janela do prompt de comando e execute o método abaixo

java -jar projeto_java.jar

Isso vai abrir a tua aplicação e permitir que você rode tranquilamente, porém, vai manter o prompt aberto e todo e qualquer erro será apresentado neste prompt.

Lacan

o nome da aplicação é Trabalho fica java -jar Trabalho.jar

Lacan

mano você quer tentar abrir aí? http://www.mediafire.com/file/zxh2ynfkwt9761d/Trabalho.jar

darlan_machado


Cara, o problema é que você colocou alguma dependência que só existe na tua máquina ou no netbeans que você tem em teu computador.
Por isso que eu reclamo do netbeans…

Lacan

Acho que já sei, foi umas imagens, eu devo criar um pacote com elas né?

staroski

Poxa, a exceção está bem clara, não tem nada a ver com imagens, o que houve é que a JVM não encontrou a seguinte classe:

org.netbeans.lib.awtextra.AbsoluteLayout

Você precisa incluir o JAR dessa classe no classpath de sua aplicação.

P

Acho que o Staroski já respondeu… aconteceu comigo outras vezes… quando gera o Jar (sem incluir algumas libs nele) roda no seu PC pq ele tem referência lá, mas não tem na sua escola…
Quando for gerar o Jar, veja as opções de incluir libs e classes (para ele ficar com tudo o que precisa para rodar dentro dele, sem dependência/referência externa).

Lacan

Staroski se não for incomodar, poderia me ensinar?

Lacan

Entendi, poderia me dizer onde ver?

P

Tenta uma dessas explicações (não sei sua versão no Eclipse, mas é algo assim)

Lacan

Sem querer ser abusivo, mas você sabe como é o do NetBeans?

Lacan

olha as opções

darlan_machado

Se eu estou bem lembro, no netbeans você exporta e tem a opção de selecionar onde vai inserir as libs das quais o teu projeto depende (se dentro do jar gerado ou numa pasta fora). Talvez você tenha optado pela segunda opção e esqueceu de copiar a pasta. O ideal é exportar tudo junto, no mesmo jar. Evitando, assim, problemas como este.

P

Como o Darlan disse, deve ser algo parecido na hora que for gerar o JAR, eu particularmente não sei.

Lacan

Sim ele fez a pasta fora, aí o programa só inicia quando ele está na mesma pasta com essa pasta que foi gerada

darlan_machado

Para uma solução rápida, sempre copie a tal pasta junto do jar.
Ou, como eu comentei, exporte já definindo que as dependências ficam dentro do jar gerado.

Lacan

você sabe como mudar o exporte? (você pode tentar abrir no seu pc?
http://www.mediafire.com/file/rlgmf7y71a82td0/trabalhodept.rar)

SergioLucas

Lacan, faz o seguinte, no Netbeans você clica com o botão direito no projeto e clica na opção Limpar e Construir. Após esse procedimento na Pasta do Netbeans em Meus documentos estará a pasta do projeto e clicando nela terá um pasta chamada dist, nela está o arquivo .jar e uma pasta lib, ou seja ele criou o projeto e deixou alguns arquivo nessa pasta, então tem como fazer um procedimento para juntar tudo em um único arquivo.

SergioLucas

XML para um unico JAR.txt (1,0 KB)

Após esse procedimento que falei acima, na aba arquivos do seu projeto você vai procurar o arquivo build.xml, você abre ele e lá no final do script vai terminar com , então antes desse térmico você vai adicionar esse código que estou passando em anexo, na Linha Value=“KitSocorroPge”, você vai alterar para colocar o nome do seu projeto.
Em seguida você clica com o botão direito nesse arquivo build.xml, clica em Executar destino> Outros destinos> package-for-store. se tudo deu certo, na pasta do Netbeans em meus documentos, na pasta do seu projeto, deve ter gerado uma pasta STORE, essa pasta contém o seu arquivo, junto com a pasta lib gerada anteriormente, tudo em um único arquivo.

Agora sim, poderá utilizar em qualquer lugar, desde que tenha o JVM instalado.
Espero ter ajudado.

Criado 21 de fevereiro de 2018
Ultima resposta 2 de mar. de 2018
Respostas 35
Participantes 7