Hallo,
ich habe ein Array mit Buttons, und schaffe es nicht, deren ActionListener wie folgt zu gestalten:
er soll zunächst einfach nur den Text auf dem geklickten Button ändern in den aktuellen Wert des RadioButtons .
Ich kann zwar den Wert auslesen, nicht aber neu setzen, da ich ich innerhalb des ActionsListeners "y" nicht verwenden darf.
es funktioniert:
Auslesen: System.out.println(e.getActionCommand());
Setzen expliziter Button: Fields_row1[0].setText("NEU");
aber NICHT: Fields_row1[y].setText("NEU");
Wie kann ich das bewerkstelligen ?
Würfe mich riesig über Eure Hilfe freuen.
Und aus diesem Problem resultierend: ich wüsste zum späteren Aufruf weiterer Funktionen gern, wie das Array heisst, in dem ich mich befinde (später wird es mehrere geben), und den aktuellen Wert von "y". Hängt alles zusammen...bin quasi "orientierungslos" im Listener...
LG, Sanne
hier der Code:
============
ich habe ein Array mit Buttons, und schaffe es nicht, deren ActionListener wie folgt zu gestalten:
er soll zunächst einfach nur den Text auf dem geklickten Button ändern in den aktuellen Wert des RadioButtons .
Ich kann zwar den Wert auslesen, nicht aber neu setzen, da ich ich innerhalb des ActionsListeners "y" nicht verwenden darf.
es funktioniert:
Auslesen: System.out.println(e.getActionCommand());
Setzen expliziter Button: Fields_row1[0].setText("NEU");
aber NICHT: Fields_row1[y].setText("NEU");
Wie kann ich das bewerkstelligen ?
Würfe mich riesig über Eure Hilfe freuen.
Und aus diesem Problem resultierend: ich wüsste zum späteren Aufruf weiterer Funktionen gern, wie das Array heisst, in dem ich mich befinde (später wird es mehrere geben), und den aktuellen Wert von "y". Hängt alles zusammen...bin quasi "orientierungslos" im Listener...
LG, Sanne
hier der Code:
============
Code:
package outback;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JSpinner;
import javax.swing.SpinnerListModel;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class outback_Frame {
private JFrame frame;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
outback_Frame window = new outback_Frame();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public outback_Frame() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 800, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JButton [] Fields_row1 = new JButton[4];
for(int y=0; y<4; y++){
Fields_row1[y] = new JButton("?");
Fields_row1[y].setBounds(20+85*y, 200, 50, 55);
Fields_row1[y].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Text auf Button ändern in Wert von RadioButton
Fields_row1[0].setText("NEU"); // einen bestimmten Button ansprechend klappt
System.out.println(e.getActionCommand()); // auslesen klappt auch
// Danach benötige zum Aufruf div. Funktionen die Informationen:
// - in welchem Array bin ich (es wird später mehrere geben), hier also "Fields_row1"
// - den Wert von y
}
});
frame.getContentPane().add(Fields_row1[y]);
}
JRadioButton rdbtnNewRadioButton = new JRadioButton("Koala");
rdbtnNewRadioButton.setSelected(true);
rdbtnNewRadioButton.setBounds(100, 270, 100, 23);
frame.getContentPane().add(rdbtnNewRadioButton);
JRadioButton rdbtnNewRadioButton_4 = new JRadioButton("Waran");
rdbtnNewRadioButton_4.setBounds(220, 270, 100, 23);
frame.getContentPane().add(rdbtnNewRadioButton_4);
}
}
Zuletzt bearbeitet von einem Moderator: