ActionListener?

Status
Nicht offen für weitere Antworten.

Gizzo

Mitglied
Hi,

ich hab da mal eine kleine Verständnisfrage (Der Code sollte getrennt sein, z.B. die Listener in einer Klasse):

1.Fall:
Ich habe eine Klasse, die ein JFrame "FrameKlasse" ist, dann habe ich eine Klasse die ein JPanel "PanelKlasse" ist.
Die "PanelKlasse" hat jetzt einen Button drauf und die "PanelKlasse" wird auf dem ContentPane der "FrameKlasse" geadded.
Nun habe ich noch eine Klasse "TextKlasse", die einfach ein Textfeld hat und eine Methode setButtonText(String text).
"TextKlasse" ist ebenfalls auf dem ContentPane der "FrameKlasse".

Ich möchte, daß wenn ich den Button drücke, sich der Text des Textfeldes ändert. Nur wie?

2. Fall:
Ich habe eine Klasse, die ein JFrame "FrameKlasse" ist, dann habe ich eine Klasse die ein JPanel "PanelKlasse" ist.
Die "PanelKlasse" hat jetzt einen Fortschrittsbalken drauf und die "PanelKlasse" wird auf dem ContentPane der "FrameKlasse" geadded. "PanelKlasse" hat eine Methode updatePb(), die dem Fortschrittsbalken eins draufzählt.
Ich habe eine 2. Klasse "ImportFiles".
Wie kann ich jetzt erreichen, daß immer wenn ich eine Datei importiert habe, der Fortschrittsbalken ein bißchen weiter hüpft (neuer Thread ist klar)?


Schon mal Danke!
 

Oni

Top Contributor
du gibst dem listener das jeweilige objekt mit und rufst dann die entsprechende methode auf.

zeig mal ein bisschen code, vielleicht wird dann das problem klarer.

meinst du sowas in der art?
Code:
JButton b = new JButton("x");
b.addActionListener(new MyJButtonActionListener(this));

....
 

Gizzo

Mitglied
Code hab ich ja noch keinen, das war bis jetzt alles mal theoretisch angedacht.

Mit
Code:
new MyJButtonActionListener(this)
hast du aber einen eigenen Listener gebaut, das sehe ich doch so richtig.

Ich erfinde jetzt mal ein bißchen Code:

1.Fall:

Code:
public class SelectPanel extends JPanel {

	private ActionListener listener = null;

	public SelectPanel (ActionListener lst) {
		this.listener = lst;
	
		JButton btnSelectSourceFiles = new JButton();
		btnSelectSourceFiles.setText("...");
		btnSelectSourceFiles.setActionCommand("##_PROGRESSBARUPDATE_##");
		btnSelectSourceFiles.addActionListener(this.listener);
		
		this.add(btnSelectSourceFiles);
	}
	
}

ListenerKlasse
Code:
public class ListenerKlasse implements ActionListener {

	public void actionPerformed(ActionEvent event) {
		
		if (event.getActionCommand().toString().equals("##_PROGRESSBARUPDATE_##")) {

		}
	}

}

wie kann ich jetzt im Listener die Methode setProblemText aufrufen?????

MainKlasse
Code:
public class SplitIt {

	public static void main(String[] args) {
		ListenerKlasse listen = new ListenerKlasse();
		Test mainFrame = new Test("Test", listen );
		mainFrame.init();
        }
}

in der TestKlasse füge ich nur die Panels auf's Frame.

ProblemKlasse
Code:
public class ProblemKlasse extends JPanel {
        private JLabel lblProblem = null;

	public ProblemKlasse() {
                 lblProblem = new JLabel();
                 this.add(lblProblem);                 
	}

        public void setProblemText(String text) {
                 this.lblProblem.setText(text);
        }
	
}






2. Fall:

StatusPanel
Code:
public class StatusPanel extends JPanel {

	private JProgressBar pb = null;
	private JLabel statusText = null;
	
	public StatusPanel() {
		super();
		
		pb = new JProgressBar();
		statusText = new JLabel("Statuslabel");
		
		this.setLayout(new FlowLayout(FlowLayout.LEFT));
		this.add("West", pb);
		this.add("East", statusText);
		this.setVisible(true);
	}
	
	public void updateProgressBar() {
		this.pb.setValue(this.pb.getValue()+1);
	}
	
	public void initProgressBar(int min, int max) {
		this.pb.setString(""); 
		this.pb.setStringPainted(true);
		this.pb.setValue(0);
		this.pb.setMinimum(min);
		this.pb.setMaximum(max);
	}

        public void setStatusText(String text) {
                this.statusText.setText(text);
        }
}

in einer Methode einer anderen Klasse muß dann irgendwie z.B. updateProgressBar() aufgerufen werden und dazu brauche ich eine Instanz (ich möchte aber kein Singleton verwenden).
 

Oni

Top Contributor
ich weiss nicht ob ich dich richtig verstanden habe.
aber wenn ich dich richtig verstanden habe, würde ich es in etwa so machen. gibt bestimmt noch bessere lösungen... aber zumindest müsste es so funzt.

Test (JFrame):

Code:
public class Test extends JFrame{
  public Test(String title, ActionListener listener){
    setTitle(title);
    add(new SelectPanel(this, listener);
    
  }
}


SelectPanel:

Code:
public class SelectPanel extends JPanel {

   private ActionListener listener = null;
   private Test test;

   public SelectPanel (Test test, ActionListener lst) {
      this.listener = lst;
      this.test = test;
   
      JButton btnSelectSourceFiles = new JButton();
      btnSelectSourceFiles.setText("...");
      btnSelectSourceFiles.setActionCommand("##_PROGRESSBARUPDATE_##");
      btnSelectSourceFiles.addActionListener(this.test, this.listener);
      
      this.add(btnSelectSourceFiles);
   }
   
}



ListenerKlasse:

Code:
public class ListenerKlasse implements ActionListener {
   
   private Test test;

   public ListenerKlasse(Test test){
      this.test = test; 
   }

   public void actionPerformed(ActionEvent event) {
      
      if (event.getActionCommand().toString().equals("##_PROGRESSBARUPDATE_##")) {
          test.add(new ProblemKlasse(text));
          test.validate();
      }
   }

}
[/code]
 

Gizzo

Mitglied
Das heißt, ich gebe meine Instanz allen Panels mit und kann dann so auf alles zugreifen!?

Ich habe mal was von EventListener und EventPublishern gehört, hat das auch was damit zu tun??

Gruß
Sven
 

Oni

Top Contributor
jep genau, du gibst deine panel eine instanz vom frame mit und kannst dann darauf zugreifen. wie gesagt gibt vielleicht schönere methoden, aber die kenne ich nicht
da musst du dann jemanden fragen der mehr ahnung hat. ;-)

mit eventlistener und event publishern habe ich noch nie was gemacht.
 

Mag1c

Top Contributor
Hi,

wenn du es einfach machen willst:

der Loader:

Code:
public class Loader {

    public void addObserver (Observer obs) {
        observable.addObserver(obs);
    }

    public void loadFiles () {
        for (int i=0; i < 100; i++) {
            // load File
            observable.notifyObservers();
        }
    }

    private Observable observable = new Observable();
}

GUI-Komponente ProgressBar:

Code:
public class ProgressBar implements Observer {

    public void update (Observable o, Object arg) {
        // update ProgressBar
    }
}

und dann noch irgendwo:

Code:
...
Loader loader = new Loader();
ProgressBar progressBar = new ProgressBar();
loader.addObserver(progressBar);

Gruß
Mag1c
 

Gizzo

Mitglied
Mag1c hat gesagt.:
Hi,

wenn du es einfach machen willst:

der Loader:

Code:
public class Loader {

    public void addObserver (Observer obs) {
        observable.addObserver(obs);
    }

    public void loadFiles () {
        for (int i=0; i < 100; i++) {
            // load File
            observable.notifyObservers();
        }
    }

    private Observable observable = new Observable();
}
Die Klasse hab ich verstanden.
Mag1c hat gesagt.:
GUI-Komponente ProgressBar:

Code:
public class ProgressBar implements Observer {

    public void update (Observable o, Object arg) {
        // update ProgressBar
    }
}
Die Methode packe ich dahin, wo ich auch mein Progreßbar auf mein Panel mache, oder??
Mag1c hat gesagt.:
und dann noch irgendwo:

Code:
...
Loader loader = new Loader();
ProgressBar progressBar = new ProgressBar();
loader.addObserver(progressBar);
Was heißt hier irgendwo??
Wieso nochmal ein Progressbar??
Wie rufe ich jetzt eigentlich das Progressbar update auf??

Steh jetzt total auf dem Schlauch!

Danke für eure Geduld
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E ActionListener Java Basics - Anfänger-Themen 4
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
J Array Actionlistener Java Basics - Anfänger-Themen 9
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
P Erste Schritte ActionListener Java Basics - Anfänger-Themen 2
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb ActionListener Java Basics - Anfänger-Themen 1
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
F ActionListener mit Files etc Java Basics - Anfänger-Themen 12
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
U ActionListener mit JMenuItems verknüpfen Java Basics - Anfänger-Themen 1
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
JavaNewbie2.0 ActionListener Java Basics - Anfänger-Themen 11
Voreck Actionlistener problem Java Basics - Anfänger-Themen 1
G Im ActionListener eine "äußere" Variable verändern Java Basics - Anfänger-Themen 13
T Fehler beim ActionListener Java Basics - Anfänger-Themen 2
M public static int in ActionListener Java Basics - Anfänger-Themen 6
S actionlistener timer Java Basics - Anfänger-Themen 9
J Interface ActionListener in eigener Klasse Java Basics - Anfänger-Themen 27
P aus ActionListener auf HauptFrame zugreifen Java Basics - Anfänger-Themen 4
A Klassen Bool Actionlistener Java Basics - Anfänger-Themen 2
K Methoden ActionListener wird übersprungen Java Basics - Anfänger-Themen 3
S actionlistener Java Basics - Anfänger-Themen 29
S ActionListener und Statische Variablen Java Basics - Anfänger-Themen 4
J ActionListener Java Basics - Anfänger-Themen 5
A ActionListener Java Basics - Anfänger-Themen 9
R Problem mit ActionListener für Buttons Java Basics - Anfänger-Themen 5
Z ActionListener wird nicht erkannt? Java Basics - Anfänger-Themen 5
T ActionListener Source vergleichen Java Basics - Anfänger-Themen 8
T Frage zum ActionListener Java Basics - Anfänger-Themen 5
R ActionListener mit for Schleife füllen. Java Basics - Anfänger-Themen 4
K Button's mit versch. Aufgaben/ActionListener Java Basics - Anfänger-Themen 12
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
I ActionListener reagiert nicht Java Basics - Anfänger-Themen 6
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
D Erste Schritte Buttons mit actionlistener Problem Java Basics - Anfänger-Themen 3
S JButton mit ActionListener Java Basics - Anfänger-Themen 5
S ActionListener, Methoden und Variablen Java Basics - Anfänger-Themen 4
X Variablen Actionlistener | Variablen-namen Java Basics - Anfänger-Themen 5
G ActionListener implementieren Java Basics - Anfänger-Themen 12
T Erste Schritte Berechnete Variable im ActionListener zurückführen Java Basics - Anfänger-Themen 6
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
M Button , actionlistener Java Basics - Anfänger-Themen 11
P Erste Schritte JTable mit Daten aus Acces DB füllen und Actionlistener einsetzen Java Basics - Anfänger-Themen 29
M Actionlistener Java Basics - Anfänger-Themen 9
D Problem mit ausgelagertem Actionlistener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
M Klassen Durch den ActionListener das GUI einer anderen Klasse verändern Java Basics - Anfänger-Themen 8
T NullPointerException im ActionListener Java Basics - Anfänger-Themen 3
C Erste Schritte GUI - ActionListener - Exception Nullpointer Java Basics - Anfänger-Themen 5
Kenan89 ActionListener in eigene Klasse Java Basics - Anfänger-Themen 8
E JMenu ActionListener reagiert nicht? Java Basics - Anfänger-Themen 6
V ActionListener in einer for-Schleife Java Basics - Anfänger-Themen 2
S Erste Schritte ActionListener auf Buttons einrichten Java Basics - Anfänger-Themen 3
M Variablen Variable lässt sich durch ActionListener nicht ändern Java Basics - Anfänger-Themen 5
P ActionListener Action Event Java Basics - Anfänger-Themen 5
L ActionListener zerschießt AnchorLayout Java Basics - Anfänger-Themen 8
D ActionListener braucht zwei Klicks auf Button??? Java Basics - Anfänger-Themen 2
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
Y Actionlistener passt nicht zu Dataset Java Basics - Anfänger-Themen 6
W Problem mit FileWriter / ActionListener Java Basics - Anfänger-Themen 6
F actionListener Java Basics - Anfänger-Themen 3
T ActionListener auslagern Java Basics - Anfänger-Themen 14
S Actionlistener funktionieren nicht in der .jar Java Basics - Anfänger-Themen 9
E ActionListener abwarten lassen? Java Basics - Anfänger-Themen 11
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
H ActionListener Verbesserung möglich? (This) Java Basics - Anfänger-Themen 3
E ActionListener erkennt instanz nicht Java Basics - Anfänger-Themen 9
V ActionListener bei vielen Modulen Java Basics - Anfänger-Themen 3
J ActionListener Java Basics - Anfänger-Themen 2
T JLabel durch ActionListener ändern Java Basics - Anfänger-Themen 4
S ActionListener Java Basics - Anfänger-Themen 4
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
K Actionlistener Java Basics - Anfänger-Themen 7
M ActionListener außerhalb des EDT ausführen Java Basics - Anfänger-Themen 2
A ActionListener im JMenu - Problem Java Basics - Anfänger-Themen 2
M ActionListener reagiert nicht Java Basics - Anfänger-Themen 4
N ActionListener + GUI Java Basics - Anfänger-Themen 8
H Bewegtes Bild im ActionListener [Problem] Java Basics - Anfänger-Themen 12
D Liste+ActionListener Java Basics - Anfänger-Themen 6
L wie Jframe an ActionListener übergeben Java Basics - Anfänger-Themen 4
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
A JButton ActionListener nach einmaligem Ausführen zurücksetzen Java Basics - Anfänger-Themen 13
Luk10 Problem mit ActionListener Java Basics - Anfänger-Themen 6
R Viereck zeichnen über TextField-Eingabe /ActionListener Java Basics - Anfänger-Themen 9
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
C ActionListener problem Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben