JTextArea

der Prof

Mitglied
Hallo,

Java:
package view;

import javax.swing.JFrame;

public interface Frame {

	public static final JFrame masterFrame = new JFrame();

}

Java:
package view;

public abstract class AbstractComponent {

	public AbstractComponent() {

	}

	protected javax.swing.JTextArea area;

}

Java:
package view;

public class TestFrame extends view.AbstractComponent implements view.Frame {

	public TestFrame() {

		area = new javax.swing.JTextArea();
		
	}

	public void testFrame() {

		masterFrame.setDefaultCloseOperation(masterFrame.EXIT_ON_CLOSE);
		masterFrame.add(area);

		area.append("bla");
		
		view.LustigerMenschSagtHallo lustigerMensch = new LustigerMenschSagtHallo();
		lustigerMensch.lustigesHallo();

		masterFrame.setSize(320, 240);
		masterFrame.setLocation(100, 100);
		
		masterFrame.setVisible(true);

	}

	public static void main(String[] args) {

		view.TestFrame testFrame = new TestFrame();
		testFrame.testFrame();

	}
}

Java:
package view;

public class LustigerMenschSagtHallo extends view.TestFrame {

	public LustigerMenschSagtHallo() {
		
		
	}
	
	public void lustigesHallo() {
		
		area.append("\nwieso gehtn des net? ^^");
		
	}
}

wieso kann der lustige mensch auch nich etwas dazu sagen?..

ich möchte einfach nur "area.append("bla");" aus ner Subklasse z.b..

HILFE ^^

MfG
 
Hallo,

ich verstehe zwar nicht so ganz was du da machst, aber naja.

Eigentlich müsste ne NullPointerException geworfen werden.

Deine Klasse LustigerMensch erbt von TestFrame. Wäre also auch ein Fenster. Wenn du davon ein Object anlegst, ist das dann ein anderes Object und hat nichts mit deinem Testframe zu tun. Also wenn du bei deinem LustigenMensch-Object Methoden ausführst, ändert das nichts bei deinem TestFrame.

MFG

Sascha
 
Hallo Sascha,

danke für die antwort die klasse lustigerMensch erbt ja von TestFrame jetzt müsste... wenn ich die methode "lustigesHallo()" von TestFrame aus aufrufe.. zwei fenster erscheinen..

dat is schwachsinn^^

ich möchte einfach nur "area.append("lol");" von einer anderen klasse aus tun können..

damit ich auf "area zugreifen" kann muss ich ne get methode schreiben? return area?

jo keine ahnung bin sau müde^^

MfG
 
Genau, so ungefähr. Die andere Klasse muss halt an das Object von TestFrame kommen und dafür brauchst du eine Getter-Methode.

MFG

Sascha
 
Hallo,

ich bins nochma der ANFÄNGER

hab jetzt bissla noch probiert keine ahnung keine lust mehr.. nen Thread benutzt liegt auch nich daran.. KEIN PLAN

Java:
package view;

import javax.swing.JTextArea;

public class TestFrame implements view.Frame {

	public javax.swing.JTextArea area;

	public TestFrame() {

		area = new javax.swing.JTextArea();

	}

	public void testFrame() {

		masterFrame.setDefaultCloseOperation(masterFrame.EXIT_ON_CLOSE);
		masterFrame.add(area);

		area.append("bla");

		masterFrame.setSize(320, 240);
		masterFrame.setLocation(100, 100);

		masterFrame.setVisible(true);

	}

	public JTextArea getArea() {

		return area;

	}

	public static void main(String[] args) {
		
		view.TestFrame testFrame = new TestFrame();
		testFrame.testFrame();
		
		new LustigerMenschSagtHallo();

	}
}

Java:
package view;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class LustigerMenschSagtHallo extends view.TestFrame {

	public LustigerMenschSagtHallo() {

	}

	public void lustigesHallo() {

		Runnable r1 = new Runnable() {

			public void run() {

				getArea().append("\nlol");
				
			}
		};

		ExecutorService executor = Executors.newCachedThreadPool();
		executor.execute(r1);

	}
}

Java:
package view;

import javax.swing.JFrame;

public interface Frame {

	public static final JFrame masterFrame = new JFrame();

}

also ich geh jetzt nach Hause ich schau dann spaeter nochmal vorbei ja..


würde mich freuen wenn mir jemmand ne lösung geben könnte

ICH HAB KEINE LUST MEHR

MfG

*Edit: lol die methode lustigesHallo wird ja überhaupt nich gestartet :-)
 
Zuletzt bearbeitet:
Die Klasse LustigerMensch wird doch von TestFrame abgeleitet, oder nicht? Also hat diese Klasse auch die Methode getArea.
Damit du mal ein bischen ans grübeln kommst. Von welcher Klasse bekommst du das TextArea-Object, wenn du getArea() in der Klasse LustigerMensch aufrufst. :-)


Wenn du das TextArea-Object von TestFrame haben möchtest, musst du getArea von dem Object von TestFrame aufrufen.

MFG

Sascha
 
Hallo Sascha,

danke nochma..

Java:
package view;

public class LustigerMenschSagtHallo extends view.TestFrame {

	public LustigerMenschSagtHallo() {

	}

	public void lustigesHallo() {

		getTextArea().append("\n\nbla");

	}
}

Java:
package view;

public class TestMain {

	public static void main(String[] args) {

		view.LustigerMenschSagtHallo lustigerMenschSagtHallo = new LustigerMenschSagtHallo();

		lustigerMenschSagtHallo.testFrame();
		lustigerMenschSagtHallo.lustigesHallo();

	}
}
 
Zurück