String Array importieren ?

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo und eine frohes neues Jahr euch allen 😀 .

Ich wollte gerne wissen, wie ich ein Stringarray, das aus z.B. 10 Elementen besteht, das sich in der Klasse X befindet
in eine Klasse Y importieren kann, die in einem andere Package liegt. Also nichts mit extends...


Zur Verdeutlichung:
Code:
public class X {
                                   private String[] störung = {"Störung", "Ursache", "Abhilfe"};

                    ...... public String getStörung(int x)
                                  {
                                          return störung[x];
                                  }

Das Klappt soweit, wenn ich in der Klasse Y eine Instanz der Klasse X erzeuge und die get_methode aufrufe.

Zur Verdeutlichung:
Code:
public class Y extends JFrame {

......
         X doof = new X();
            String dick = doof.getStörung(1);
            ta.add(dick);     // ta ist in dem Fall eine JTextArea

Mein Problem ist, dass ich es nicht schaffe den ganzen String von störung zu importieren um diesen in der JTextAreaanzuzeigen. Es muss ja nicht einen Area sein eine ComboBox könnte es auch sein.

Die beiden Codes sind nur Beispiele!!!


Ich habe mich schon versucht schlau zu machen aber ich finde im Moment keine passenden Beispiele.

Vielleicht habt ihr ja einen Tipp oder ihr gebt mir einen Ansatzpunkt.

Danke schon mal,

Gruß GaSt
 
Du könntest in der Methode das ganze Array zurückgeben und dieses Array in der anderen Klasse in einer For-Each-Schleife durchgehen.

Klasse X:
Code:
public String[] getStörung(){
    
    return störung;
}

Klasse Y:

Code:
  X myX = new X();
  String[] myArr = myX .getStörung();

  for(String s : myArr){

    ta.add( s );
  }
 
danke erstmal,

werde es gleich mal ausprobieren.

Code:
... 
X myX = new X();
  String[] myArr = myX .getStörung(); // das hatte ich noch nicht ausprobiert.
 
Ich habe eine gute und eine schlechte Nachricht.

Die Gute ist, dass es funktioniert hat. Ich habe nicht
Code:
public String[] getStörung()....
geschieben
sondern
Code:
public String getStörung()....//ohne []

Aber die schlechte Nachricht ist, dass ich in der TextArea nicht den ganzen Array String bekomme sondern nur den letzten Wert des Arrays :bahnhof:

Jetzt taucht dieses Problem auf, wo ich gerade :lol: war
🙁

Ich habe es mit
Code:
for(String i:wert)...
versucht

Weiß jemand vielleicht einen Tipp :bahnhof:

gruß

GaSt
 
Du willst das ganze Array 'störung' zurückgeben oder? Damit alle Einträge (Egal wie viele es sind) in der TextArea angezeigt werden? (Hier jetzt z.B. "Störung", "Ursache", "Abhilfe")?

Wenn ja, brauchst du die [] aber

Code:
public String[] getStörung(){

  //String[] bedeutet, dass ein Array zurückgegeben wird
}

//----------------------

public String getStörung(){

  //Hier wird nur ein einzelner String zurückgegeben
}


EDIT:

add() ist vermutlich die falsche Methode bei einer JTextArea, versuche mal ta.append();
 
H,

Shadeo hat gesagt.:
Du willst das ganze Array 'störung' zurückgeben oder? Damit alle Einträge (Egal wie viele es sind) in der TextArea angezeigt werden? (Hier jetzt z.B. "Störung", "Ursache", "Abhilfe")?

ja, genau das möchte ich wiedergeben können aber wie gesagt, es gibt mir immer nur den letzten Wert des Arrays wieder.

Wenn ja, brauchst du die [] aber

public String getStörung(){

//Hier wird nur ein einzelner String zurückgegeben

das weiß ich mittlererweile. Aber wie so bekomme ich immer nur den letzten Wert ???:L

Wenn ich
Code:
public String[] getStörung()
{ return störung; }
bekomme ich nur den letzten Wert :bahnhof:

Ich werde noch :autsch:

So langsam...

Gruß

GaSt
 
hab bei meinem Beitrag noch etwas rein-editiert.

Benutzt du für deine TextArea noch die Methode add()? dann versuch mal append().

Funktioniert die Ausgabe auf der Konsole?

Code:
for(String s : deinArray){

  System.out.println( s );
}
 
Hier mal ein kleiner kompletter Beispielcode

Code:
import javax.swing.JFrame;
import javax.swing.JTextArea;


public class ArrayTest extends JFrame{

	public ArrayTest(){
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		
		
		JTextArea ta = new JTextArea();
		ClassMitArray cma = new ClassMitArray();
		
		String[] test = cma.getStoerung();
		
		for(String s : test){
			ta.append(s + "\n");
		}
		
		
		
		getContentPane().add(ta);
		pack();
	}
	
	
	
	
	class ClassMitArray{
		
		private String[] stoerung;
		
		
		public ClassMitArray(){
			
			stoerung = new String[]{"Störung", "Ursache", "Abhilfe"};
		}
		
		public String[] getStoerung(){

			return stoerung;
		}
	}
	
	
	
	
	public static void main(String[] args) {
		
		new ArrayTest().setVisible(true);
	}
}
 
Hi, danke für die Hilfe. Hat echt super funktioniert :lol:

Shadeo hat gesagt.:
Hier mal ein kleiner kompletter Beispielcode

Code:
		for(String s : test){
			ta.append(s + "\n");
		}

Ich trau mich schon gar nicht mehr etwas zu fragen, danke für deinen Code, denn kann ich bstimmt gut gebrauchen 😀

Aber eine Kleinigkeit habe ich noch. Ich bekomme immer das Array 2x ausgeworfen z.B.
Code:
Srörung Ursache Abhilfe Srörung Ursache Abhilfe
auf meiner TextArea.

Aber das mit append hat echt gut geklappt.

Wie sagt man so schön:"Muß nur´n Fachmann ran" :meld:

Danke!!
 
Ich hab da noch ein paar andere Kleinigleiten aber ich versuch´s erstmal selber.

Danke nochmal Shadeo, hat mich echt weitergebracht 🙂

gruß


GaSt
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben