MouseListener zu RadioButtons

Na_dine

Mitglied
Hallo,
in meiner Applikation möchte ich gerne die GUI separat von der ActionVerarbeitung halten. Ich habe 2 JRadioButtons, an sie einen MouseListener geheftet und möchte in einer anderen Klasse gerne auf MouseEvents reagieren, bloß klappt das noch nicht so richtig:

Hier meine JRadioButtons in der GUI:
Code:
static Events.RadioButtonEvents radiobutton = new Events.RadioButtonEvents();

ButtonGroup anleit = new ButtonGroup();
		versionA = new JRadioButton("Version 1",true);
		versionB = new JRadioButton("Version 2");
		versionA.addMouseListener(radiobutton);
 		versionB.addMouseListener(radiobutton);

je nachdem welcher Button gedrückt wird, soll eine ScrollPane eine andere JTextArea anzeigen:
Code:
description1 = new JTextArea(" \n   Version 2:);   //erster JText
description = new JTextArea(" \n   Version 1:);     //zweiter JText
scroller = new JScrollPane();                    //ScrollPane


in dieser Event Klasse, soll das Anzeigen der beiden JTextAreas gesteuert werden:
Code:
public class Events{
static class RadioButtonEvents implements MouseListener
	{		
			public void mouseClicked(MouseEvent event) {
	
          /* was muss hier stehen, damit event die beiden RadioButtons erkennt?                                      
           ActionCommands funktionieren nicht für MouseEvents und getLabel() leider auch      
            nicht :confused: */  		
           // es müsste dann vielleicht so in der Art weitergehen:
         	if(event.getSource().equals(versionA))
				 ? .getViewPortView("eins");
			else if(event.getSource().equals(versionB))
				 ? .getViewPortView("zwei");
				

}		
		}

in der Klasse der ScrollPane, Buttons etc. habe ich diese Methode zum anzeigen eigefügt:
Code:
public void setViewPortView(Component c) {
		if(c.equals("zwei"))
		scroller.setViewportView(description1);
		else if(c.equals("eins")
		scroller.setViewportView(description);
	}


Ich hoffe jemand von euch hat hierzu eine Idee! Vielen Dank schon mal und LG,
Nadine
 
Wenn du das unbedingt so machen willst (halte ich für recht unschön) dann kannst du die bieden RadioButtons der RadioButtonEvents Klasse im Konstruktor mitgeben.
 
Hab mir auch gerade überlegt, dass es doch recht kompliziert ist und habe mal einiges geändert...
bekomme keine Fehler und wüsste nicht, wo der Fehler liegt... aber die ScrollPane zeigt die beiden Anleitungen leider auch nicht an; muss man die Methode setViewPortView in der Klasse Anleitung überschreiben, oder seht ihr einen anderen Fehler?

Hier meine Klasse der GUI mit den RadioButtons:
Code:
        static JTextArea description1, description2;
	static Events.AnleitungEins anleitung1 = new Events.AnleitungEins();
	static Events.AnleitungZwei anleitung2 = new Events.AnleitungZwei();
       static JScrollPane scroller;
        static JRadioButton versionA, versionB;
        static JTextArea description1, description2;

public Anleitung(){
[...]
//RadioButtons erstellen und actionListener anhängen
versionA = new JRadioButton("Version 1",true);
versionB = new JRadioButton("Version 2");
versionA.addActionListener(anleitung1);
versionB.addActionListener(anleitung2);
// die beiden anzuzeigenden Texte erstellen 
description1 = new JTextArea(" \n   Version 1:  ..."); 
description2 = new JTextArea(" \n   Version 2: ...");
//ScrollPane
scroller = new JScrollPane();

hier meine Klasse der ActionVerarbeitung:
Code:
static class AnleitungEins implements ActionListener
	{
		private static final Component description1 = Anleitung.description1;
		
	    public void actionPerformed (ActionEvent e) 
	    {  
	    	Anleitung.scroller.setViewportView(description1);
	    } 
	}
	static class AnleitungZwei implements ActionListener
	{
	    private static final Component description2 = Anleitung.description2;

		public void actionPerformed (ActionEvent e) 
	    {  
	    	Anleitung.scroller.setViewportView(description2);
	    	
	    } 
	}

Vielen Dank, MfG,
Nadine
 
Zurück