estou com um problema que não consigo contornar… Pesquisei aqui no forum como que faz para deixar uma janela maximizada… Consegui usando o seguinte código:
this.setSize(redimensionarFrameTotal());
//deixar no centro da tela:
setLocationRelativeTo(null);
Ai beleza … o problema é que quando eu ‘organizo’ os meus componentes e alguns labels com imagens do jeitinho que eu quero no PROJETO (netbeans), quando eu executo o programa, ele desconfigura… O que eu posso fazer para arrumar isso??
Suponho que você esteja usando Swing.
Acho melhor você usar o método setExtendedState para maximar a janela. É mais simples e foi feito para isso. Só chamá-lo passando o parâmetro Frame.MAXIMIZED_BOTH.
Para ajeitar os componentes da forma correta é preciso escolher os LayoutManagers adequados e configurar as propriedades corretas para que quando sua janela mude de tamanho, seus componentes aproveitem o espaço da forma que você deseja.
Precisaria saber mais detalhes do seu código para poder te ajudar mais com isso.
a solução numero 1 do post citado não resolveu o problema… E fiz do jeitinho que mandou, tento em vista que realmente ouve diferença… mas acontece a mesma coisa…!
d34d_d3v1l, não sei se estou entendendo direito o que você está tentando fazer.
Eu abri seu projeto aqui mexi um pouco e pelo que vi, você está usando o Free Design no Net Beans.
Este tipo de design, até onde estou vendo, fixa os componentes na posição que você colocá-los.
Se você quer mudar o tamanho da janela para ficar maximizada na tela, sugiro usar um GridBagLayout e alterar as propriedades FILL, Weight X e Weight Y para que os componentes se rearrangem quando o tamanho da janela for alterado.
Você pode ler mais sobre isso aqui e aqui.
Abraço.
[quote=visola]d34d_d3v1l, não sei se estou entendendo direito o que você está tentando fazer.
Eu abri seu projeto aqui mexi um pouco e pelo que vi, você está usando o Free Design no Net Beans.
Este tipo de design, até onde estou vendo, fixa os componentes na posição que você colocá-los.
Se você quer mudar o tamanho da janela para ficar maximizada na tela, sugiro usar um GridBagLayout e alterar as propriedades FILL, Weight X e Weight Y para que os componentes se rearrangem quando o tamanho da janela for alterado.
Você pode ler mais sobre isso aqui e aqui.
Abraço.[/quote]
obrigado,
dei uma lida, mas mesmo assim GridBagLayout modifica o tamanho dos botoes e componentes ao aumentar a janela… e isso tbem esta acontecendo com o meu projeto… eu queria que ficasse do mesmo jeito… Ja que vc viu o projeto, de uma clica no botao para visualizar o design… naquele olhinho verde do netbeans… ai vc vai reparar que esta tudo bonitinho, a imagem ‘informatica’ esta alinhada com as duas janelas… aquela imagem “mesa de bar” esta no centro do seu painel tudo certo… na hora de executar, as coisas atrapalham: a imagem ‘informatica’ fica menor que os paineis, a imagem ‘mesa de bar’ nao fica mais centralizada e coisinhas do tipo!!
Para que as imagens fiquem alinhadas, vai ter que manter a janela da largura da imagem “Informática”.
No método que você calcula o tamanho da janela, ao invés de calcular pelo tamanho da tela, fixa ele para o tamanho da imagem e pronto.
Veja qual altura e largura que tudo fica alinhado corretamente e altera o método “redimensionarFrameTotal” para retornar um Dimension com o tamanho que você quer.
Outras soluções mais complexas como redesenhar a imagem do tamanho do painel conforme a janela cresce, aumentarão a complexidade além do desejado, no meu ponto de vista. Mas você poderia fazer isso sobrescrevendo o método paint(Graphics) dos JLabel que usa para colocar as imagens. Ou criar sua própria extensão de JLabel que tenha esse comportamento por padrão, já que o que vem no JRE não faz isso.
Um código para redimensionar uma imagem pode ser visto aqui. Neste exemplo a imagem é redimensionada e gravada num arquivo, no seu caso, usaria o Graphics passado para o método paint para isso.
Espero ter ajudado.
Abraço.
já viu os programas pagos ai de bar, restaurante? Todos sao maximizados, queria fazer uma coisa semelhante… Mas pelo jeito to vendo que ta mto dificil para eu conseguir!!
Qual tamanho da janela vc aconselharia para que nao ficasse tão ruim numa resolução de 800x600 e uma outra qualquer??
Talvez, o que você poderia fazer é mandar várias imagens, para os tamanhos padrões de tela: 800x600 e 1024x768. Aí dependendo do tamanho da tela você carrega uma imagem ou a outra. Aí você pode testar na sua máquina para saber qual o tamanho de cada imagem para ficar alinhado do jeito que você quer.
Se o seu programa vai ficar maximado do jeito que você mandou no código, então pode fazer as imagens com os tamanhos das larguras das telas: 800 e 1024. Pelo menos a “Informática”. A outra você vai ter que ver como fica melhor em cada tela.
[quote=visola]Talvez, o que você poderia fazer é mandar várias imagens, para os tamanhos padrões de tela: 800x600 e 1024x768. Aí dependendo do tamanho da tela você carrega uma imagem ou a outra. Aí você pode testar na sua máquina para saber qual o tamanho de cada imagem para ficar alinhado do jeito que você quer.
Se o seu programa vai ficar maximado do jeito que você mandou no código, então pode fazer as imagens com os tamanhos das larguras das telas: 800 e 1024. Pelo menos a “Informática”. A outra você vai ter que ver como fica melhor em cada tela.
Abraço.[/quote]
obrigado pela resposta, mas acho que é muito trabalho para uma coisa que nao vou usar e muito menos vender… kkkkkkkk…
Mas gostaria de aproveitar ja que esta me ajudando, poderia dar uma olhada em um outro tópico que criei que ninguem deu muita importancia??
Se puder, por favor visite: