Olá a todos, alguém sabe me dizer se há como estar listando todos os objetos numa jframe, jdialog, e jpanel?Se sim, como?Tentei o método, getComponents(), mas deu em nada!!
Pegar componentes numa jframe
M
6 Respostas
Porque não deu certo???
M
Ele me retorna apenas um!!Sendo que há, jmenu, jmenuitem, e outras coisas!!
Um exemplo simples com getComponents:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GetComponents extends JFrame implements ActionListener {
public GetComponents() {
JButton btn1 = new JButton("Buttton 1");
JButton btn2 = new JButton("Buttton 2");
JButton btn3 = new JButton("Buttton 3");
JButton btn4 = new JButton("Buttton 4");
JButton btn5 = new JButton("Buttton 5");
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
btn4.addActionListener(this);
btn5.addActionListener(this);
add(btn1, BorderLayout.NORTH);
add(btn2, BorderLayout.WEST);
add(btn3, BorderLayout.CENTER);
add(btn4, BorderLayout.EAST);
add(btn5, BorderLayout.SOUTH);
pack();
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
showComponents(getContentPane());
}
public void showComponents(Container container) {
Component[] components = container.getComponents();
for (Component c : components) {
System.out.println(c);
System.out.println();
}
}
public static void main(String[] args) {
new GetComponents();
}
}
T+
M
Sim, ai é beleza!!Sem problemas, mas não consigo pegar tudo o que tem na jframe!!Não só botões, mas mas também Menu, MenuItem e por ai vai!!
Quando o componente é um container você tem que pegar os componentes direto nele.
Por exemplo, se você tem um JMenu, você tem que pegar os JMenuItems no JMenu, não no JFrame.
T+
M
Opa, Deu certo!!Valeu ai diego!!Ruim é que tenho que pegar um por um para estar setando a fonte deles!!
Criado 1 de novembro de 2007
Ultima resposta 1 de nov. de 2007
Respostas 6
Participantes 2