so, hier ist ein kleines beispiel.
In einer forschleife werden drei buttons erzeugt. Jedem wird eine einzigartiger Namer vergeben. Jedoch bekomme ich immer nur den namen des zuletzt erzuegten button.
[HIGHLIGHT="Java"]import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Rectangle;
public class Beispiel extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JLabel jLabel = null;
private JButton button = null;
/**
* This is the default constructor
*/
public Beispiel() {
super();
initialize();
erzeugeButtons();
}
private void erzeugeButtons()
{
for(int i = 0; i < 3; i++)
{
jContentPane.add(getButton("Titel" + i, (i * 30)));
}
}
private JButton getButton(String titel, int height)
{
button = new JButton();
button.setBounds(10, height, 50, 20);
button.setName(titel);
button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
jLabel.setText(button.getName());
}
});
return button;
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(214, 47, 38, 16));
jLabel.setText("JLabel");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(jLabel, null);
}
return jContentPane;
}
}[/HIGHLIGHT]
wie kann ich es nun machen, das im lebel immer der titel desjenigen buttons erscheint. Also Titel0, Titel1 oder halt auch Titel2 (welcher ja nun immer erscheint)