Buttons und Wertezuweisung

Liberty-son

Mitglied
Hallo!

Ich möchte durch Knopfdruck weitere Buttons erstellen was ja kein Problem ist aber diese sollen quasi einen Wert von 1 bis... erhalten so das ich damit rechnen kann. z.B. erzeuge ich 10 buttons um den wert von button 1 (der 1 ist) mit dem Button 9 (der 9 ist) zu addieren. Irgendwie weiss ich nicht, wie ich den Schleifenläufer dem Button so zuweise, dass ich danach die werte auslesen kann. Kann mir da jemand helfen?

Danke
 
Kannst du das nochmals deutlicher erklären? Möchtest du einen Taschenrechner programmieren, welcher 10 Buttons für die Ziffern von 0 bis 9 enthält. Oder wie meinst du das genau?

Vg Erdal
 
irgendwie sehr schwer zu erklären. Ich möchte 10 Buttons erzeugen wobei diese von 1 bis 10 durchnummeriert sind.
Code:
public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equals("weiter Buttons")) {
			if (anzahl <= 10) {
				anzahlHoch= new JButton();
			    anzahlHoch.setText("button nr. " + anzahl);
			    
				getContentPane().add(anzahlHoch);
				anzahl++;
				setVisible(true);
			}

jetzt soll jeder Button auch die Wertigkeit der Anzahl haben so das ich damit rechnen kann. z.B der erste Button die Wertigkeit 1 und der 2 die 2 usw. Leider kann ich den Buttons ja nur einen String Label als Namen übergeben und nicht die Anzahl. So das ich dann mit einem expliziten Typcasting aus dem String wieder ein int machen kann. Zumindest fehlt mir da der Ansatz. Bin jetzt schon am überlegen, ob ich das mit einer Objektklasse realisieren soll aber da weiss ich auch noch nicht genau wie.
 
Aber du kannst doch aus dem String deine Anzahl extrahieren und als int casten, oder nicht?
Also du nimmst den Substring so, dass dein String nur noch die ANzahl enthält und kannst dann mittels Integer.parseInt(stringAnzahl) einen int daraus machen.
Hast du das so gemeint?

VG Nicole
 
Hallo Liberty,

hier ein Minibeispiel:

Java:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class MiniCalculator_F extends JFrame implements ActionListener {

	private JTextField t = new JTextField();

	private JPanel p = new JPanel();

	private JButton[] b = new JButton[12];

	private int sum = 0;

	public MiniCalculator_F() {
		super("Mini Calculator");
		this.setLocationByPlatform(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		p.setLayout(new GridLayout(4, 3));
		for (int i = 0; i < 9; i++) {
			b[i] = new JButton("" + (i + 1));
			p.add(b[i]);
		}

		p.add(b[9] = new JButton("+"));
		p.add(b[10] = new JButton("="));
		p.add(b[11] = new JButton("c"));

		for (int i = 0; i < b.length; i++) {
			b[i].addActionListener(this);
		}

		this.add(t, BorderLayout.NORTH);
		this.add(p, BorderLayout.CENTER);

		this.pack();
		this.setVisible(true);
	}

	public static void main(String[] args) {
		new MiniCalculator_F();
	}

	public void actionPerformed(ActionEvent e) {
		String s = e.getActionCommand();
		if ("123456789".indexOf(s) != -1)
			t.setText(s);
		else if (s.equals("+")) {
			sum += Integer.valueOf(t.getText());
			t.setText("" + sum);
		} else if (s.equals("=")) {
			sum += Integer.valueOf(t.getText());
			t.setText("" + sum);
			sum = 0;
		} else {
			t.setText("");
			sum = 0;
		}
	}
}


Vg Erdal
 
Zuletzt bearbeitet:
Zurück