na linha
panel.setLayout(new FlowLayout());
acho que qr fazer
panel.setLayout(new BorderLayout());
na linha
panel.setLayout(new FlowLayout());
acho que qr fazer
panel.setLayout(new BorderLayout());
Perguntinha: por que está adicionando os botões ao JFrame e também ao JPanel?
Sem contar que no JPanel você está usando o FlowLayout, e na hora de colocar os botões nele, está agindo como se fosse um BorderLayout.
Hmmm…acho que você está com um certo problema para entender o conceito de componente e de container.
Os componentes são sempre colocados dentro de containers. E um container pode ter outros containers.
O JFrame e o JPanel são containers. Portanto, o correto seria você incluir os botões no JPanel, e esse JPanel no JFrame. Ou então, descartar o JPanel e colocar os botões direto no JFrame.
Perceba também que, para que os botões fiquem à direita no JFrame, alguma coisa deve ser colocada à esquerda!
Para colocar os botões um acima do outro:
JButton button1 = new JButton("botão 1");
JButton button2 = new JButton("botão 2");
JButton button3 = new JButton("botão 3");
JPanel buttonPanel = new JPanel(new GridLayout(3, 1));
buttonPanel.add(button1);
buttonPanel.add(button2);
buttonPanel.add(button3);
E para colocá-los no JFrame à direita:
this.setLayout(new BorderLayout());
this.add(new JLabel("apenas ocupando espaço"), BorderLayout.CENTER);
this.add(buttonPanel, BorderLayout.EAST);
Obs.: o “this” refere-se à própria classe, onde considero que ela está estendendo a classe JFrame.
Olá pessoal…
estou tentando fazer o exercicio 11.8 do deitel 6ªedição… o problema está na hora de por os botões um encima do outro e ñ estou conseguindo achar a configuração correta… estou tentando fazer por esse código, mas os botões ñ estão saindo corretamente como deveriam…
import java.awt.GridLayout;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JCheckBox;
import javax.swing.JPanel;
import javax.swing.JFrame;
public class Align extends JFrame {
private JPanel panel;
private JButton button1;
private JButton button2;
private JButton button3;
// private final String names[] = {"OK","Cancel","Help"};
private JLabel label1;
private JLabel label2;
private JTextField text1;
private JTextField text2;
private JCheckBox box1;
private JCheckBox box2;
public Align(){
super("align");
panel = new JPanel();
panel.setLayout(new FlowLayout());
button1 = new JButton("OK");
add(button1);
button2 = new JButton("Cancel");
add(button1);
button3 = new JButton("Help");
add(button1);
panel.add(button1 , BorderLayout.NORTH);
panel.add(button2 , BorderLayout.CENTER);
panel.add(button3 , BorderLayout.SOUTH);
add(panel, BorderLayout.EAST);
}
}
oq está errado… ?
valew pessoal…
[quote=fenrir]Perguntinha: por que está adicionando os botões ao JFrame e também ao JPanel?
Sem contar que no JPanel você está usando o FlowLayout, e na hora de colocar os botões nele, está agindo como se fosse um BorderLayout.[/quote]
ñ estou conseguindo me cituar dentro do frame… estou tentando colocar tres botões um encima do outro na direita do frame e ñ estou conseguindo…