Olá,
Tenho o seguinte código:
[code]JFrame frame = new JFrame();
Container cp = frame.getContentPane();
cp.setLayout(new FlowLayout());
for(i=0;i<25;++i) cp.add(new JButton("button "+i));
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);[/code]
Quando cria os botoes eles ficam todos em linha reta…
Como faço para mudar sua posição?
Sei lá… colocar 3 em cada coluna… =\
Olha a classe que você está utilizando (FlowLayout()) ela adiciona os botões da esquerda para à direita, e por isso que os botões estão em linha reta. Utilize a classe GridLayout(), ela posiciona os botões por linhas e colunas.
ex: Se você quiser adicionar 4 botões em forma quadrática, ou seja 2 linhas e 2 colunas, só é preciso você informar no constructor dessa classe que assim os botões vão ficar quandráticos.
JFrame frame = new JFrame("My GridLayout");
Container content = frame.getContentPane();
content.setLayout(new GridLayout(2, 2));
for (int i = 0; i < 4; i++)
content.add(new JButton("Button[" + i + "]");
Obrigado…
Mas agora com isso me veio outra dúvida,
esses botões que eu crio… como é o nome deles? :S
Para falar especificamente de cada um?
O nome é você que dá a cada um deles!
É isso?
mas eu estou criando por um for…
e adicionando na Grid…
então fica sempre ‘‘button’’ ;s
É mesmo, o bom seria você criar um vetor de JButton que aí sim você poderia manipular por indice depois!
JButton[] buttons = new JButton[5];
for (int i = 0; i < 5; i++) {
buttons[i] = new JButton("Button[" + i + "]");
container.add(buttons[i]);
}
[code]import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Botoes extends JFrame{
private JButton[] botoes = new JButton[6];
public Botoes(){
super("Teste de Botoes");
this.setSize(300, 200);
this.setLocationRelativeTo(this);
componentes();
this.setVisible(true);
}
public void componentes(){
this.setLayout(new GridLayout(3, 3));
for(int i = 0; i < botoes.length; i++){
botoes[i] = new JButton("Botao " + (i+1));
botoes[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
acao(e);
}
});
this.add(botoes[i]);
}
}
public void acao(ActionEvent evt){
JButton b = (JButton) evt.getSource();
JOptionPane.showMessageDialog(this, b.getText() + " pressionado");
}
public static void main(String args[]){
Botoes b = new Botoes();
b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}[/code]