JTextArea in anderer Klasse anrufen

Na_dine

Mitglied
Hallo,
ich habe 2 JTextAreas erstellt die in einer JScrollPane angezeigt werden sollen... Über zwei JRadioButtons kann der Benutzer wählen welchen Text er anzeigen lässt...
Die ActionVerarbeitung findet in einer anderen Klasse als die GUI-Erstellung statt....
Es klappt alles bis auf die tragische Kleinigkeit, dass i nder Klasse in der ich die Action verarbeite die JTextAreas nicht erkannt werden, d.h. sie sind =null :confused:

hier die Klasse in der ich die GUI sachen erstelle
Code:
public class Anleitung extends JPanel {
	
	static JTextArea description1, description2; //meine Texte
	static JRadioButton versionA, versionB;
	static Events.AnleitungEins anleitung1 = new Events.AnleitungEins();
	static Events.AnleitungZwei anleitung2 = new Events.AnleitungZwei();
 
public Anleitung(){
...
ButtonGroup anleit = new ButtonGroup();
		versionA = new JRadioButton("Version 1",true);
		versionB = new JRadioButton("Version 2");
                versionA.addActionListener(anleitung1);
		versionB.addActionListener(anleitung2);
description1 = new JTextArea(" \n   Version 1: \n ...");
description2 = new JTextArea(" \n   Version 2: \n ....");
scroller = new JScrollPane();

und hier die Actionverarbeitung Klassen:
Code:
static class AnleitungEins implements ActionListener
	{     //Aufruf der JTextArea1 aus der Klasse Anleitung
		private static final Component description1 = Anleitung.description1;
		
	    public void actionPerformed (ActionEvent e) 
	    {  
	    	
	    	Anleitung.scroller.setViewportView(description1);
	    } 
	}
	static class AnleitungZwei implements ActionListener
	{     //Aufruf der JTextArea2 aus der Klasse Anleitung
		private static JTextArea description2 = Anleitung.description2;

		public void actionPerformed (ActionEvent e) 
	    {  
			
			System.out.println(description2); //hier gibt der Compiler nur null aus
	    	Anleitung.scroller.setViewportView(description2);
	    	
	    } 
	}
 
Was auch kein Wunder ist wenn du das mit static an beiden Stellen umsetzt. Wenn die Klasse Anleitung benutzt wird, werden zuerst die statischen Felder initialisiert. description1 und 2 sind damit null. Gleichzeitg erstellt du auch schon Objekte von deinen Events anleitung1 und anleitung2. Diese werden daher auch initialisiert und somit auch die statischen Felder darin die nun description1 und description2 auslesen und diese beiden sind noch null und bleiben es somit auch.
 
Zurück