Olá!
Estou precisando de uma mãozinha, estou enrolado em um problema,
Estou fazendo uma interface que consiste em um panel criando vários JButtons, um para cada dado extraído do banco.
O problema é: os dados do banco variam! e por isso, o número de JButtons também varia...
Fiz um for da seguinte maneira:
for (Programa i : programas){
btnPrograma = new JButton(i.getNome());
btnPrograma.setIcon(new ImageIcon(Inicial2.class.getResource("/Icones/1393395397_document.png")));
btnPrograma.setVerticalTextPosition(SwingConstants.BOTTOM);
btnPrograma.setHorizontalTextPosition(SwingConstants.CENTER);
btnPrograma.setBorder(BorderFactory.createEmptyBorder(2,2,2,2));
btnPrograma.setBorderPainted(false);
btnPrograma.setContentAreaFilled(false);
btnPrograma.setBounds(60, 382, 62, 50);
btnPrograma.addActionListener(this);
btnPrograma.setVisible(true);
btnPrograma.setBorder(null);
//labelnome.addFocusListener((FocusListener) this);
panel.add(btnPrograma, gbc_labelnome);
}//Fim for
Onde programas é uma lista com os programas retirados do Banco, sendo assim, ele cria um JButton para cada programa do banco e coloca no panel em forma de flowlayout.
Isso até funciona, mas o problema, é que eu perco o controle dos objetos, e quando vou usar o Listener, ele só consegue captar o último botão inserido, pois como todos botões receberam o nome de btnPrograma, apenas o último responde por esse nome. (Um substituiu o outro).
Minha idéia é mudar o nome dos botões conforme eles vão sendo criados, porém, não tem como atribuir o nome a uma variavel na hora de criar o objeto.
Pesquisei então sobre Java Reflection, e já quebrei a cabeça e não consegui entender, a maioria dos exemplos é sobre usar os métodos de uma classe... nenhum fala sobre instanciação (ou são pouquíssimos claros).
Agradeço a quem puder ajudar.