bom galera o lance é o seguinte no programinha abaixo eu coloquei um Jlabel no border layout norte e adicionei uma combobox e a combobox so aparece um pedaço ficou cortada gostaria de resolver este problema outra coisa é que quando eu maximizo ou redimensiono a janela meus componentes saem do lugar de origem tipo botão que está em baixo passa para o lado direito queria corrigir isto tb … estas coisas desde já agradeço ajuda de vcs
importjava.awt.BorderLayout;importjava.awt.Color;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JButton;importjavax.swing.JPanel;publicclassSorteGrandeextendsJFrame{privateJButtonsorteio,sair;privateJLabellinstrucao;privateJComboBoxopcao;privateJPanelpainelnorte,painelcenter,painelsul;publicSorteGrande(){super("Sorte Grande v.01");setLayout(newBorderLayout());//Tratamento JButtonssorteio=newJButton("Sortear");sair=newJButton("Sair");//Tratamento JComboBoxStringescolha[]={"Mega Sena","Loto Mania","Terno","Passe","Milhar"};opcao=newJComboBox(escolha);//Tratamento Painelpainelcenter=newJPanel();painelnorte=newJPanel();painelsul=newJPanel();//Tratamento do labellinstrucao=newJLabel("Escolha a opção para gerar o palpite");//Tratamento JTextAreasetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(250,300);setLocationRelativeTo(null);//Adicionando paineisadd(painelnorte,BorderLayout.NORTH);add(painelcenter,BorderLayout.CENTER);add(painelsul,BorderLayout.SOUTH);//painel nortpainelnorte.add(linstrucao);painelnorte.add(opcao);//painel sulpainelsul.add(sorteio);painelsul.add(sair);setVisible(true);}publicstaticvoidmain(Stringargs[]){SorteGranderef=newSorteGrande();ref.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}
E quando vc aumenta/diminue, os componentes segue as coordenadas impostas pelo layout que vc escolheu. Caso não queira que isso acontece, não escolha um layout.
Marck.
Ticianne
olha, além de redimensionar a tela pra um tamanho que apareçam todos os componentes vc tem que colocar na sua janela setResizeble(false) para impedir que ela seja redimensionada pelo usuário e todos os seus componentes mudem de lugar.
Marky.Vasconcelos
Obs:
publicstaticvoidmain(Stringargs[]){SorteGranderef=newSorteGrande();ref.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Essa parte é desnecessária pois você já chama isso no construtor }
Alias vocêpodia melhorar um poquinho isso pra algo assim
public static void main(String... args){
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
new SorteGrande();
}
}
}
diego2005
No lugar de setSize você pode usar o método pack pra ajustar o tamanho do frame automaticamente.
T+
F
filipibh
como ficaria o meu codigo com este metodo pack para ajustar altomaticamente a janela??
Marky.Vasconcelos
//Aquipack();setVisible(true);
F
filipibh
bom eu aumentei a janela e não resolveu o problema o que aconteceu foi que o ComboBox passou para frente do label
sendo que na verdade eu quero que o label fique por cima e o ComboBox abaixo dele no Border Norte utilizando o pack() tambem não resolveu o problema será que tenho que fazer com outro gerenciador de layout??
fec
Porque não tenta usar o Netbeans?
Creio que iria ajudar bastante!!
Valew!
diego2005
Vê se é isso que você quer:
importjava.awt.BorderLayout;importjava.awt.Color;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JButton;importjavax.swing.JPanel;publicclassSorteGrandeextendsJFrame{privateJButtonsorteio,sair;privateJLabellinstrucao;privateJComboBoxopcao;privateJPanelpainelsul;publicSorteGrande(){super("Sorte Grande v.01");painelsul=newJPanel();sorteio=newJButton("Sortear");sair=newJButton("Sair");Stringescolha[]={"Mega Sena","Loto Mania","Terno","Passe","Milhar"};opcao=newJComboBox(escolha);linstrucao=newJLabel("Escolha a opção para gerar o palpite");add(linstrucao,BorderLayout.NORTH);add(opcao,BorderLayout.CENTER);add(painelsul,BorderLayout.SOUTH);painelsul.add(sorteio);painelsul.add(sair);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);pack();setLocationRelativeTo(null);setVisible(true);}publicstaticvoidmain(Stringargs[]){SorteGranderef=newSorteGrande();}}
T+
F
filipibh
bom o porque de não utilizar o netbeans, é simplesmente porque estou começando a lidar com java e acho que é melhor aprender a linguagem, ao inves de aprender a usar a ferramenta e ficar preso a ela,
quando comecei a mecher com html aprendi pelo dreamweaver e para largar ele foi uma luta!!!
mas agradeço pela dica.
F
filipibh
diego funcionou da forma que eu queria oq vc mudou e qual a logica deste negocio???
diego2005
Bem, o JFrame já vem com um JPanel, e esse JPanel já vem configurado com o BorderLayout, e o Borderlayout tem 5 áreas:
NORTH
CENTER
EAST
WEST
SOUTH
Então eu adicionei o JLabel no norte, o JComboBox no centro, e um painel no sul. Ai depois eu adicionei os 2 JButton’s no painel que está no sul.
obs.: o layout padrão de um JPanel é o FlowLayout, por isso que os 2 botões ficam centralizados.
Entendeu?
T+
fec
filipibh:
bom o porque de não utilizar o netbeans, é simplesmente porque estou começando a lidar com java e acho que é melhor aprender a linguagem, ao inves de aprender a usar a ferramenta e ficar preso a ela,
quando comecei a mecher com html aprendi pelo dreamweaver e para largar ele foi uma luta!!!
mas agradeço pela dica.
Tem razão amigo…retiro o que eu disse então!!
Valew!
F
filipibh
JFrame já vem com um JPanel, e esse JPanel já vem configurado com o BorderLayout
o layout padrão de um JPanel é o FlowLayout, por isso que os 2 botões ficam centralizados.
acima vc disse que o Jpanel vem com borderlayout e depois falow que o padrao do Jpanel é o flow layout
entendi so me confirma uma coisa o Jpanel tem como Default border layout ou flowlayout
valew
M
mfl0101
Aproveitando a discussão sobre gerenciadores de layouts, gostaria de saber se, eu não utilizar o gerenciador, terei problemas mesmo utilizando outro pc com a mesma plataforma? Eu queria colocar os componentes manualmente e distribuí-los na tela sem utilização dos gerenciadores. Aí me veio essa, se permanecerão organizados da forma que eu coloquei, instalando meu sistema em um outro computador com a mesma plataforma.