Hat vielleicht jemand Kenntnisse über die Programmierung einer anonymen Klasse? ich hab überhaupt keine ahnung ...
(Bitte nicht falsch verstehen ich erwarte keinen vollständigen Quelltext! Ansätze und Hilfestellungen würden mir vollkommen reichen!)
gegeben ist das hier: (wieder eine alte Klausuraufgabe)
Soweit so gut funktioniert auch alles und weiß auch wie das ganze aussieht. Allerdings bereitet mir folgende Aufgabenstellung große Probleme:
Ich habe überhaupt keine Ahnung wie es sich realisieren lässt, kann mir vielleicht irgendjemand einen Rat geben?
Das einzige was ich in einer Vorlesung gefunden habe war das hier:
allerdings hilft mir das für die bearbeitung der aufgabe nicht weiter kann jemand helfen?
(Bitte nicht falsch verstehen ich erwarte keinen vollständigen Quelltext! Ansätze und Hilfestellungen würden mir vollkommen reichen!)
gegeben ist das hier: (wieder eine alte Klausuraufgabe)
Java:
import javax.swing.*;
import java.awt.*;
public class klausurmitjframe extends JFrame {
JPanel pButtons, pPIN;
JButton[] buttons;
JLabel[] result;
static final String[] ZAHLEN = { "0", "1", "2", "3", "4", "5" };
private final String zahl="1234";
private int ind=0;
public klausurmitjframe() {
setTitle("Sicherheitscheck");
BorderLayout bl = new BorderLayout();
bl.setHgap(5);
bl.setVgap(5);
setLayout(bl);
pButtons = new JPanel();
pPIN = new JPanel();
GridLayout gl = new GridLayout(3, 2);
gl.setHgap(5);
gl.setVgap(5);
pButtons.setLayout(gl);
buttons = new JButton[ZAHLEN.length];
for (int i = 0; i < ZAHLEN.length; i++) {
buttons[i] = new JButton(ZAHLEN[i]);
buttons[i].setPreferredSize(new Dimension(100, 50));
pButtons.add(buttons[i]);
buttons[i].setEnabled(true);
}
FlowLayout fl = new FlowLayout();
pPIN.setLayout(fl);
add(pButtons, BorderLayout.CENTER);
add(pPIN, BorderLayout.NORTH);
result = new JLabel[zahl.length()];
for (int i = 0; i < zahl.length(); i++) {
result[i] = new JLabel("_");
result[i].setName(zahl.charAt(i) + "");
pPIN.add(result[i]);
}
}
public static void main(String[] args) {
klausurmitjframe h = new klausurmitjframe();
h.pack();
h.setVisible(true);
}
}
Soweit so gut funktioniert auch alles und weiß auch wie das ganze aussieht. Allerdings bereitet mir folgende Aufgabenstellung große Probleme:
Registrieren Sie bitte Beobachter von Komponentenereignissen, durch eine anonyme
Klasse.
Beim i-ten Anklicken eines Buttons soll überprüft werden, ob die ausgewählte Zahl
mit der i-ten Ziffer des gespeicherten Zahlenschlüssels übereinstimmt.
Falls die Zahl nicht stimmt, sollen alle Buttons deaktiviert und über die Konsole eine
passende Meldung ausgegeben werden.
Falls die Zahl stimmt, soll an der entsprechenden Position ein ‚*‘ angezeigt werden.
Ist der gesamte Zahlenschlüssel korrekt eingegeben worden, soll über die Konsole
eine entsprechende Meldung ausgegeben und das Programm beendet werden.
Hinweis: Nutzen Sie hierfür die Methoden der Klasse Button (siehe Anlage).
Klasse Button
public synchronized void addActionListener(ActionListener l)
/* Adds the specified action listener to receive action events from this button. */
public void addNotify()
/* Creates the peer of the button. */
public AccessibleContext getAccessibleContext()
/* Gets the AccessibleContext associated with this Button. */
public String getActionCommand()
/* Returns the command name of the action event fired by this button. */
public String getLabel()
/* Gets the label of this button. */
public EventListener[] getListeners(Class listenerType)
/* Return an array of all the listeners that were added to the Button with
addXXXListener(), where XXX is the name of the listenerType argument. */
public synchronized void removeActionListener(ActionListener l)
/* Removes the specified action listener so that it no longer
receives action events from this button. */
public void setActionCommand(String command)
/* Sets the command name for the action event fired by this button. */
public void setLabel(String label)
/* Sets the button’s label to be the specified string.*/
Ich habe überhaupt keine Ahnung wie es sich realisieren lässt, kann mir vielleicht irgendjemand einen Rat geben?
Das einzige was ich in einer Vorlesung gefunden habe war das hier:
Java:
ActionListener a =
new ActionListener() {
public void actionPerformed(ActionEvent e) {...}
allerdings hilft mir das für die bearbeitung der aufgabe nicht weiter kann jemand helfen?