Pessoal, tô aprendendo agora a utilizar a interface gráfica e não gostaria de aprender usando nenhum plugin gráfico. Quero começar na mão mesmo só pra pegar alguns conceitos. Gostaria o que tá dando errado no código abaixo já que quando executo ele só adiciona um dos dados no frame e no centro dele. Não sei porque não tá adicionando os outros dados, mesmo eu colocando o setLocation. Por favor me ajudem. E gostaria de saber também porque o setLocation não tá aceitando quando coloco .setLocation(1.5,2.5). Diz que é necessário um número float. Esses parâmetros não são float?!? Já peguei exemplos prontos que fazem justamente isso que estou tentando fazer. Só não entendo o porquê de não estar mostrando no frame. Agradeço qualquer ajuda. Aí está o código com os “imports” e tudo:
Mano, o JFrame usar o defaul o BorderLayout() que tem as regiões NORTH, SOUTH, LEST, WEST e CENTER, se não me engano são essa, então mano, usando o BorderLayout() tu so pode colocar um componente por região, se tu tentar colocar dois apenas o ultimo vai aparecer.
se tu que usar setLocation() acho que tu deve configurar o layout como null para poder setar as coordenadas x e y do componente.
sobre o parametro, eu não lembro qual é mais ta dizendo que ele espera um float não é, então, Java “não converte para baixo”, ou seja, converte um tipo de um ranger maior para um menor… colocar um float onde se espera um double é valido pois double é maior que float e não há perca de dados, mas quando existe perca de dados como de um double para float tu tem que avisar ao copilador que esta ciente disso atraves do Cast… então acho que se tu colocar setLocatio((float)1.5, (float)2.5); da certo
espero ter ajudado e não falado nenhuma besteira… sou iniciante no Java tb
ah sim, tinha me esquecido… se tu usar so add(Component) com BorderLayout() ele vai adicionar sempre no CENTER por default, então já sabe o que vai acontecer né?
usar add(Componente, BorderLayout.REGION); substitui o REGION pela região onde tu quer add o componente
Obrigado pelas respostas. Mas quero usar o setLocation pq quero disponibilizar os dados não em regiões predeterminadas como: norte, sul, leste, oeste ou centro, direita e esquerda. Quero disponibilizá-los numa região exata como coordenadas (x,y). Então, como configuro o borderlayout pra null?
valeu felipe pela resposta. Com o frame.setLayout(null) aqui deu certo. Pude configurar as coordenadas. Agora não sei porque só aqui no meu exemplo que tive de fazer isso. Todos os outros q vi na net não usaram setLayout (null), simplesmente foram adicionando os itens. Com relação a sua pergunta, sinceramente não sei. Sou a pessoa menos indicada para respondê-la.
Os outros exemplos que você viu também utilizavam JFrames?
Pq outros Containers, como JPanel se não engano, têm um Layout padrão, talvez algum deles tenha null como Layout padrão, mas isso é só uma suposição.
Quanto as minhas perguntas, se responderem agradeço!
Senão agrado tbm, vlw! haha
Não trabalhe com setLocation. Eu li que você quer deixar o código em regiões pré-determinadas, então, nesse caso, aprenda a usar o GridBagLayout e combinações de outros layoutmanagers (como o BorderLayout e FlowLayout). Dificilmente se usa outro layout além desses três. Usar o setLocation, setBounds e NullLayout impede que seu código seja portado para outras plataformas. Quando o Look&Feel do seu código mudar, a tela fica toda avalhacada. Além disso, usando os layout managers, você ganha de brinde a funcionalidade de poder alterar o tamanho da janela e os componentes se ajustarem sozinhos. setLocation simplesmente não é o jeito correto de se trabalhar com Swing;
Quando for postar códigos aqui no GUJ, siga essas dicas. Assim seu código fica formatado e colorido, o que torna a nossa leitura muito mais fácil.
Guarde os seus componentes em atributos. Você precisará ler e gravar valores deles depois. Também é conselhavel criar um método para a criação de cada componente. Isso torna o código mais legível (especialmente depois de aplicar o GridBagLayout). Alguns editores fazem isso com LazyLoading.
Como eu respondi ali em cima, sim é uma boa prática.
Se você não usar…
Você não poderá (pelo menos não sem muito código) redimensionar janelas;
Você terá surpresas se o seu Look&Feel mudar;
Mesmo que não mude, ao rodar em outro sistema operacional, o layout de alguns campos ficará comprometido.
Aplicações normalmente permitem que o usuário estique ou encolha a janela seu bel-prazer. Se você limitar isso em todas as janelas, vai ter um usuário irritado e um provável pedido de que isso mude. Fazer isso via código muito mais complicado do que simplesmente aprender a usar o GridBagLayout.
Mandarim, aprenda o básico sobre os layout managers, como cada um funciona. Depois, baixe o netbeans e nunca mais olhe para o código deles.
Chará, faz tempo que não te vejo por aqui. Da última vez, lembro-me de ter visto seu tópico, mas algum monge já tinha respondido na minha frente.
eae ViniGodoy!
eu estou sumido um pouco mesmo, ocupado com meu tcc na area tecnica,
vou ficar uns tempos fora do ar mas quando acabar vou estar sempre por aqui!