Qual é a diferença e quando usa cada um"setPreferredSize(new Dimension (x,x)) ou setSize(x,x)" de maneira correta ?
Na faculdade aprendi “setSize”, “setBounds” mas o setPreferredSize(new Dimension (x,x)) conheci na internet.
Obrigado…
Olá, boa tarde, o texto abaixo foi retirado da documentação da oracle e traduzido pelo google tradutor.
setPreferredSize: Define o tamanho preferido desse componente. Se o tamanho preferido for nulo, A UI (Interface de Usuário) receberá o tamanho preferido (ou seja se o tamanho setado for nulo, ou invalido, acredito que seja setado para o tamanho já pré-definido da linguagem, nos meus testes não aceitou largura menor que 132, e altura menor que 38).
setSize: Redimensiona este componente para que ele tenha largura de largura e altura de altura(largura de parâmetro passado e altura de parâmetro passado). Esse método muda as informações relacionadas ao layout e, portanto, Invalida a hierarquia dos componentes. nos meus teste ele também pegou tamanho pré definido pela linguagem, e não aceitou largura menor que 132, e altura menor que 38).
Fiz um teste também para saber se inicializar o Jframe com setPreferredSize(800, 600), e depois alterar para um tamanho utilizando setSize,com valor nulo, se ele ia pegar o tamanho setado em setPreferredSize, e novamente ele pegou o tamanho pré-definido pela Linguagem;
Podemos concluir que os tem o mesmo fim, setar dimensões, porém tem comportamentos diferentes, testei em uma de minhas janelas que por padrão no netbeans tem 892 x 555 usei o setPreferredSize(800, 600) ele não conseguiu mudar a Dimensão do Jframe pois dessa forma ia cortar parte dos botões que tenho, e o valor que a janela recebeu foi respeitando a hierarquia do Jframe, agora utilizando o setSize ele conseguiu setar a janela para 800 x 600, cortando assim os botões em tela, deixando exatamente nessas dimensões, não respeitando a hierarquia do Jframe.
Espero estar certo para responder sua pergunta, qualquer dúvida estou a disposição.