Swing - Diferença do que se vê no design em relação ao que se executa
9 respostasResolvido
B
beto20a
Pessoal, sou novo no fórum e estou com uma dúvida básica aqui.
Estou aprendendo Swing e usando a paleta no netbeans para a criação da tela.
Deixo tudo bonito na tela e quando executo fica tudo bagunçado… alguém sabe o que pode ser?
Já mexi em layout escolhendo outros tipos e nada resolveu.
É muito complicado você se basear pelo preview de qualquer IDE, dificilmente elas dão uma visão real da situação.
Este problema sempre ocorreu e vai ocorrer sempre que você mudar de plataforma (desenvolve em windows e roda em linux, vice versa, etc) ou de resolução de tela (desenvolve para 1024x768 e roda em 1366x769), sem ter tratamento para estas diferenças.
Por isso eu sugiro que você teste o eclipse e o plugin windowbuilder. Ele, além do código mais limpo, gera um produto final muito próximo do preview (não será o mesmo em todos os casos, ok?).
Aliás, é quase unânime que o editor drag and drop do netbeans é muito ruim.
Outra coisa, a maioria dos desenvolvedores swing que conheci (uns 4 ou 5) não usam drag and drop, fazem tudo na mão (eu prefiro fazer tudo na mão quando é web).
B
beto20a
Pois é… sempre desenvolvi com JSF e tudo na mão, nunca tive problemas. Aplicações desktop sempre fiz em Delphi e mesmo sendo drag and drop nunca tive problema. Agora que peguei Swing pra aprender já me deparo com isso… Muito ruim dessa forma!
L
Luis_Augusto_Santos
Tem uma diferença bem grande entre java e delphi e que talvez justifique esse abismo: o java roda sobre uma virtual machine.
B
beto20a
Sim, com toda a certeza. Só quis dizer que já trabalhei com drag and drop sem ter problemas e levei um susto no java usando Swing.
B
Solucao aceita
beto20a
Resolvi!
Ao invés de criar o JFrame usando o “assistente”, criei ele na mão.
Em seguida criei o meu Panel usando o assistente e construí ele todo com uso da paleta
Após isso, incluí o Panel no JFrame via código. Ficou tudo certinho agora e acredito que tenha sido algum código gerado automaticamente que fazia o JFrame ficar todo bagunçado.
Quando faço aplicações com GUI desktop, costumo utilizar o Look And Feel do sistema operacional, até para que o usuário final esteja mais acostumado com o “jeitão” das telas:
Geralmente no método main, antes de instanciar qualquer janela ou classe visual, eu faço o seguinte: