Ja also ich habe hier meinen Code, der bis jetzt so aussieht:
Also ich wollte eigentlich erreichen, dass wenn der Fokus auf dem Textfeld ist er den satz " ich habe den fokus" ausgibt...
Aber so ganz scheint das nicht zu stimmen was ich da gemacht habe bzw. ich verstehe grundsätzlich den FocuListener nicht..
Was genau muss denn passieren damit der Fokus auf dem Textfeld liegt? muss da dann eine eingabe passieren oder mit der Maus gestreift werden oder wie genau wird das ausgelöst?
Hab jetzt schon mehrere Beispiele ausprobiert, aber das erschließt sich mir nicht wirklich..
weiterhin möchte ich, dass bei inkrementiern bzw. dekrementieren, was die beiden buttons ja auslösen, den auslösenden button ermitteln mit processActionEvent...
soweit ich das gesehen habe wird dann ermittelt welcher button ausgelöst werden muss und dann müsste man jeweils die methode actionPerformed auslösen... oder sehe ich das falsch?
das übergeben an das textfeld und die buttons ansich funktionieren ja einwandfrei
nur der sachverhalt der funktionsweise der beiden methoden machen mich irgendwie mürbe...
Java:
import java.awt.*;
import java.awt.event.*;
public class Fokus extends Frame {
private int textfield1=0;
private String textfield2;
Fokus(String titel) {
super(titel);
setSize(400, 400);
setVisible(true);
add(label);
add(panel);
MeinWindowAdapter meinWa = new MeinWindowAdapter();
addWindowListener(meinWa);
init();
}
Label label = new Label();
Panel panel = new Panel();
TextField textfield = new TextField("0", 20);
Button button1 = new Button("Inkrementieren");
Button button2 = new Button("Dekrementieren");
public void init() {
panel.add(textfield);
textfield.addFocusListener(new MyTextField() {
});
panel.add(button1);
button1.addActionListener (new MyActionListener());
panel.add(button2);
button2.addActionListener (new MyActionListener());
add(panel);
panel.add(textfield);
}
class MyTextField extends TextField implements FocusListener {
public void processFocusEvent(FocusEvent e) {
Graphics g = getGraphics();
Object obj = e.getSource();
if (e.getSource() instanceof TextField) {
((TextField)obj).setText("Ich habe den Fokus");
}
}
public void focusLost(FocusEvent e) {}
public void focusGained(FocusEvent e) {}
}
class MeinButton {
}
class MyActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
++textfield1;
textfield2=("" +textfield1);
textfield.setText(textfield2);
}
if (e.getSource() == button2) {
--textfield1;
textfield2=("" +textfield1);
textfield.setText(textfield2);
}
}
}
class MeinWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
public static void main (String [] args) {
new Fokus("FocusListenerer");
}
}
Also ich wollte eigentlich erreichen, dass wenn der Fokus auf dem Textfeld ist er den satz " ich habe den fokus" ausgibt...
Aber so ganz scheint das nicht zu stimmen was ich da gemacht habe bzw. ich verstehe grundsätzlich den FocuListener nicht..
Was genau muss denn passieren damit der Fokus auf dem Textfeld liegt? muss da dann eine eingabe passieren oder mit der Maus gestreift werden oder wie genau wird das ausgelöst?
Hab jetzt schon mehrere Beispiele ausprobiert, aber das erschließt sich mir nicht wirklich..
weiterhin möchte ich, dass bei inkrementiern bzw. dekrementieren, was die beiden buttons ja auslösen, den auslösenden button ermitteln mit processActionEvent...
soweit ich das gesehen habe wird dann ermittelt welcher button ausgelöst werden muss und dann müsste man jeweils die methode actionPerformed auslösen... oder sehe ich das falsch?
das übergeben an das textfeld und die buttons ansich funktionieren ja einwandfrei