Liste graphischer Objekte z.B. JButton dynamisch erstellen

robochris

Aktives Mitglied
Hallo Zusammen,

ein Programm mit folgender Funktionalität würde ich gerne schreiben:

Ich möchte verschieden Graphische Elemente wie z.B. JButton, JSlider u. JTextAray auf einem JFrame darstellen.
Diese Elemente sind aber nicht statisch, sondern werden vom Programm zu bestimmten Zeitpunkten produziert. Ihre Positionen sind auch nicht vorhersehbar und werden vom Programm berechnet.

Ich weiß nicht genau, wie die beste Vorgehensweise ist. Vielleicht geht es so:

1. in einer ArrayList werden die Objekte eingetragen
( Hier ergibt sich schon das erste Problem: die Objekte haben ja einen unterschiedlichen Typ, muss ich also erst ein Interface implementieren ? )
2. Über ein for-schleife werden dann alle Objekte auf dem JFrame dargestellt, wenn ein neues Objekt hinzugefügt wird.

Ist das der richtige Weg?
 

robochris

Aktives Mitglied
Danke :) ( wie gibt man eigentlich im Forum ein Danke? )

Mein Testprogramm stellt jetzt Objekte aus einer Liste dar. Eigentlich sollten sie nach einer Sekunde verschwinden und dann wieder auftauchen. Sie bleiben aber ständig sichtbar, werden aber nach 1 Sekunde unbedienbar. Warum macht der JFrame kein update?

Java:
import java.awt.FlowLayout;
import java.util.*;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JTextArea;

public class Test_GuiList {
	List<JComponent> graphikObjekte;

	public Test_GuiList()
	{
		graphikObjekte=new ArrayList<JComponent>();
		graphikObjekte.add(new JButton("OK"));
		graphikObjekte.add(new JLabel("hallo"));
		graphikObjekte.add(new JSlider());
		graphikObjekte.add(new JTextArea("Textfeld",5,5));
	}

	public void addObjekte(JFrame f)
	{
		int n=0;
		for(n=0;n<graphikObjekte.size();n++)
		{
			f.add(graphikObjekte.get(n));
		}
	}

	public static void main(String[] args)
	{
		JFrame fenster=new JFrame();
		fenster.setSize(500,300);
		fenster.setLayout(new FlowLayout());

		Test_GuiList gui=new Test_GuiList();

		gui.addObjekte(fenster);

		fenster.setVisible(true);

		Wait.ms(1000);

		int n=0;
		System.out.println(n++);

		fenster.removeAll();
		fenster.repaint();

		Wait.ms(1000);
    	        System.out.println(n++);

		System.out.println("ende");

		//gui.addObjekte(fenster);
	}

final class Wait{

	static public void ms(int n)

	{

		try {Thread.sleep(n);} catch (InterruptedException e){};

	}

}
 

Michael...

Top Contributor
Warum macht der JFrame kein update?
Weil man sowas auch nicht macht ;-) Sinn und Zweck muss man ja nicht verstehen.
Unbedienbar werden sie, weil sie eigentlich nicht mehr da sind, der Bildschirm allerdings nicht sauber aktualisiert wird. Noch ein Hinweis: innerhalb des EDT ruft man eigentlich kein Thread.sleep() auf.

Java:
import java.awt.FlowLayout;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.JTextArea;

public class TestGuiList {
	List<JComponent> graphikObjekte;

	public TestGuiList() {
		graphikObjekte = new ArrayList<JComponent>();
		graphikObjekte.add(new JButton("OK"));
		graphikObjekte.add(new JLabel("hallo"));
		graphikObjekte.add(new JSlider());
		graphikObjekte.add(new JTextArea("Textfeld", 5, 5));
	}

	public void addObjekte(JFrame f) {
		for (int n = 0; n < graphikObjekte.size(); n++) 
			f.add(graphikObjekte.get(n));
	}

	public static void main(String[] args) {
		JFrame fenster = new JFrame();
		fenster.setSize(500, 300);
		fenster.setLayout(new FlowLayout());
		TestGuiList gui = new TestGuiList();
		gui.addObjekte(fenster);
		fenster.setVisible(true);
		ms(1000);
		fenster.getContentPane().removeAll();
		fenster.getContentPane().validate();
		fenster.getContentPane().repaint();
		ms(1000);
		System.out.println("ende");
	}

	static public void ms(int n) {
		try {
			Thread.sleep(n);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}
 

robochris

Aktives Mitglied
"innerhalb des EDT ruft man eigentlich kein Thread.sleep() auf"
Hmm, das ist mir nicht klar. "Wait.ms(1000);" sieht doch schön aus und funktioniert so praktisch. Die Wait-Klasse kann man dann auch in anderen Programmen verwenden.

Vielen Dank für die Korrektur. Jetzt habe ich noch ein Problem: Wie kann ich die Werte der Objekte aus der ArrayList abfragen?

z.B. den Wert von JSlider ( normalerweise mit slider.getValue ) oder aus den Text aus der TextArea mit getText
 

preachie

Aktives Mitglied
Wenn Du den EDT mittels sleep Schlafen legst, dann ist der komplette GUI Thread lahm gelegt.
Erstelle doch testweise mal ein Fenster mit paar Objekten und setze dann einen sleep(50000). Wechsle mit Alt+Tab auf ein anderes Fenster und zurück auf das Java Fenster. ;)

Wegen der anderen Frage, Du musst das Objekt auf den entsprechenden Typen casten, z.B.

Java:
((JSlider)graphikObjekte.get(0)).getValue();

Allerdings solltest Du vorher prüfen, dass Du es auch auf den richtigen Typen castest, da es Dir sonst um die Ohren fliegt, evtl. mittels

Java:
if (graphikObjekte.get(0) instanceof JSlider)
{
	System.out.println(((JSlider)graphikObjekte.get(0)).getValue());
}
 

robochris

Aktives Mitglied
Besten Dank. Ich habe aus Unkenntnis versucht, mehrere Listen parallel zu führen: Jeweils eine Liste für Objekte wie JButton und die dazugehörige Liste mit den JComponenten.

In meinem Programm erzeuge ich jetzt ein JPanel, welches dann in den eigentlichen Fensterrahmen eingebunden wird.
Ich hab versucht, den Layout-Manager des JPanels auszuschalten, damit ich die Objekte frei platzieren kann ( siehe auskommentierten Code beim Slider ). Leider tauchen die Objekte dann gar nicht mehr auf. Wisst Ihr vielleicht den Grund?

Java:
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JTextArea; 

public class TestGuiList extends JPanel{

    List<JComponent> graphikObjekte;

    // eigene Objekt Identifier
    static final int KNOPF=1;
    static final int LABEL=2;
    static final int SCHIEBER=3;
    static final int TEXT=4;

    // Objekt Listen
    List<JButton> knoepfe;
    List<JLabel> label;
    List<JSlider> schieber;
    List<JTextArea> texte;

    public TestGuiList() {
        graphikObjekte = new ArrayList<JComponent>();

        // Layout Manager ausschalten
        //this.setLayout(null); // kein Layout Manager für freie Größenwahl
        //this.setSize(640,480);
    }

    public int addObjekt(int identifier,String name)
    {
    	int objektIndex=0;
    	if(identifier==KNOPF)
    	{
    		//knoepfe.add(new JButton("OK"));
    		objektIndex=graphikObjekte.size();
    		graphikObjekte.add(new JButton(name));
    		//System.out.println("index: "+graphikObjekte.size());
    	}

    	if(identifier==LABEL)
    	{
    		objektIndex=graphikObjekte.size();
    		graphikObjekte.add(new JLabel(name));
    	}
    	if(identifier==SCHIEBER)
    	{
    		objektIndex=graphikObjekte.size();
    		graphikObjekte.add(new JSlider());
    		graphikObjekte.get(0).setBounds(100,100,300,20);
    	}

    	if(identifier==TEXT)
    	{
    		objektIndex=graphikObjekte.size();
    		graphikObjekte.add(new JTextArea());
    	}

    	updateObjektPanel();
    	return objektIndex;
    }

    // alle Objekte ins Panel übertragen
    public void updateObjektPanel() {
        for (int n = 0; n < graphikObjekte.size(); n++) 
            this.add(graphikObjekte.get(n));
    	this.validate();
    	this.repaint();
    }

    // alle Objekte aus Panel löschen
    public void clear(){
    	this.removeAll();
    	this.validate();
    	this.repaint();
    }

    public static void main(String[] args) {
        JFrame fenster = new JFrame();
        fenster.setSize(500, 300);
        fenster.setLayout(new FlowLayout());

        TestGuiList guiPanel = new TestGuiList();
        guiPanel.addObjekt(KNOPF,"OK");
        guiPanel.addObjekt(KNOPF,"OK");
        guiPanel.addObjekt(SCHIEBER,"OK");
        guiPanel.addObjekt(TEXT,"OK");
        guiPanel.addObjekt(LABEL,"OK");

        int n=0;
        for(n=0;n<3;n++) guiPanel.addObjekt(KNOPF,"nix");
        fenster.add(guiPanel);
        fenster.setVisible(true);

       System.out.println("ende");
/*        int n=0;
        for(n=0;n<3;n++)
        {	
	        ms(1000);
	        guiPanel.clear();
	        ms(1000);
	        guiPanel.addObjekte();
        }
        System.out.println("ende");
*/
    } 

    static public void ms(int n) {
        try {
            Thread.sleep(n);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
 

Marco13

Top Contributor
Allgemein: Du solltest vielleicht das Ziel etwas genauer beschreiben. Man KANN natürlich Objekte verschiedener von JComponent abgeleiteter Klassen in eine Liste packen, und dann mit instanceof rumfuhrwerken. Aber eigentlich ist instanceof in vielen Fällen unschön (ich könnte etwas weiter ausklamüsern, WANN genau es unschön ist, aber das würde etwas dauern).

Die sich aufdrängenden Fragen sind dann (zumindest ) : Wer soll die Liste mit den JComponents kennen? Und: Wer soll die Liste kennen, aber braucht zusätzlich die Information, welchen Typ sie GENAU haben?

Wenn du jetzt mehrere Listen mit den verschiedenen Typen hast, zeigt das IMHO, dass da vorher irgendwas an der Modellierung nicht gestimmt hat, und IMHO leider auch, dass jetzt vermutlich(!) immernoch etwas nicht stimmt...

Sowas wie
Java:
    public int addObjekt(int identifier,String name)
    {
        if(identifier==KNOPF)
        {
...        graphikObjekte.add(new JButton(name));

        }
        if(identifier==LABEL)
        {
            graphikObjekte.add(new JLabel(name));
 
...
        }
ist auch sehr, sehr un-Objektorientiert. Vielleicht ist es nicht das Ziel, das Programm in diesem Sinne "schön" zu schreiben. Aber was sich in diesem Fall, und bei ganz oberflächlicher Betrachtung, aufzudrängen scheint, wäre eine Factory:

Java:
interface ComponentFactory
{
    JComponent createComponent(String name, ... );
}

class ButtonFactory implements ComponentFactory
{
    public JComponent createComponent(String name, ... )
    {
        return new JButton(name);
    }
}

class LabelFactory implements ComponentFactory
{
    public JComponent createComponent(String name, ... )
    {
        return new JLabel(name);
    }
}

Damit könnte die Methode entsprechend geändert werden:
Java:
    public int addObjekt(ComponentFactory factory,String name)
    {
       graphikObjekte.add(factory.createComponent(name));
    }

Der Aufruf wäre dann nicht mehr
addObjekt(KNOPF, "Bla");
addObjekt(LABEL, "Bla");
sondern
addObjekt(new ButtonFactory(), "Bla");
addObjekt(new LabelFactory(), "Bla");

Das ist nur GANZ grob anskizziiert - "genau so" würde das nicht unbedingt Sinn machen, könnte aber eine Richtung aufzeigen, um das ganze flexibler zu machen. Überlege, was bei deinem Ansatz geändert werden muss, wenn z.B. als Objekttyp noch ein JTree dazukommen soll: Die Konstanten (KNOPF, LABEL...) müssen um "BAUM" erweitert werden, die if-Abfrage muss um den Fall
Java:
if (identifier == BAUM) { ... add(new JTree()); ... }
erweitert werden... Mit der Factory würde man einfach eine neue Klasse bauen
Java:
class TreeFactory implements ComponentFactory
{
    public JComponent createComponent(String name, ... )
    {
        return new JTree();
    }
}
und der restliche Code bliebe unverändert.
 

robochris

Aktives Mitglied
Vielen Dank.
"Allgemein: Du solltest vielleicht das Ziel etwas genauer beschreiben."

Das Ziel des ganzen ist, eine GUI mit einem Scribtfile erzeugen zu können. Das Scribtfile sieht dabei in etwa so aus:

// Beispielsyntax für GUI-Steuerung:

$create slider hallo // Schieber mit Name "hallo" erzeugen
60 // Schieber auf Position 60 stellen
$create text TestText // Textfeld erzeugen
nur ein Gedicht // Ausgabe auf Textfeld
$select hallo // Focus auf Schieber "hallo" setzen
$get // Wert des Schiebers einlesen ( eine Zahl z.B. 74 )
$setPos 100 100 // Schieber an Postion 100,100 setzen
$setSize 200 50 // Schiebergröße verändern

Wie kann man eigentlich den Zustand eines JButtons ohne Listener auslesen? Also den aktuellen Zustand, ob der Knopf gedrückt oder nicht gedrückt ist. Dazu müsste es doch eine Methode geben.

Hier ist der akutelle Code:

Java:
import java.awt.FlowLayout;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

 

import javax.swing.JButton;

import javax.swing.JComponent;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JSlider;

import javax.swing.JTextArea;

 

public class TestGuiList extends JPanel{

	

    List<GObjekt> graphikObjekte;

    List<Integer> identifiers;

    private int currentIndex=0;

         

    public TestGuiList() {

        graphikObjekte = new ArrayList<GObjekt>();

        // Layout Manager ausschalten

        //this.setLayout(null); // kein Layout Manager für freie Größenwahl

        //this.setSize(640,480);

    }



    // alle Objekte ins Panel übertragen

    public void updateObjektPanel() {

        for (int n = 0; n < graphikObjekte.size(); n++) 

            this.add(graphikObjekte.get(n).getComponent());

    	this.validate();

    	this.repaint();

    }

    // alle Objekte aus Panel löschen

    public void clear(){

    	this.removeAll();

    	this.validate();

    	this.repaint();

    }

    

    // $create slider hallo		// Schieber mit Name "hallo" erzeugen 

    public boolean create(String elementTyp, String name)

    {

    	boolean okFlag=false;

    	

    	currentIndex=graphikObjekte.size();

    	

    	if(elementTyp.equals("button")){

    		graphikObjekte.add(new GObjekt(new JButton(name),name));

    		okFlag=true;

    	}

    	if(elementTyp.equals("label")){

    		graphikObjekte.add(new GObjekt(new JLabel(name),name));

    		okFlag=true;

    	}

    	if(elementTyp.equals("slider")){

    		graphikObjekte.add(new GObjekt(new JSlider(),name));

    		okFlag=true;

    	}

    	if(elementTyp.equals("text")){

    		graphikObjekte.add(new GObjekt(new JTextArea(5,5),name));

    		((JTextArea)graphikObjekte.get(currentIndex).getComponent()).setLineWrap(true);

    		okFlag=true;

    	}



    	updateObjektPanel();

    	return okFlag;

    }

    public String getName()

    {

    	return graphikObjekte.get(currentIndex).getName();

    }

    public String get()

    {

    	String s="";

    	if(graphikObjekte.get(currentIndex).getComponent() instanceof JButton)

    	{

    		

    		s=((JButton) graphikObjekte.get(currentIndex).getComponent()).getActionCommand() ;

    		//s=""+k;

    	}

    	if(graphikObjekte.get(currentIndex).getComponent() instanceof JSlider)

    	{

    		int k;

    		k=((JSlider) graphikObjekte.get(currentIndex).getComponent()).getValue();

    		s=""+k;

    	}

    	

    	return s;

    }

    public boolean write(String s)

    {

    	System.out.println("write to: "+graphikObjekte.get(currentIndex).getName());

    	//***************** SLIDER ********************************************************

    	if(graphikObjekte.get(currentIndex).getComponent() instanceof JSlider)

    	{

    		int k=0;

    		try{

    			k=Integer.parseInt(s);

    		}catch(Exception E){

    			System.out.println("error: set JSlider no number type");

    		}

    		((JSlider) graphikObjekte.get(currentIndex).getComponent()).setValue(k);

    		System.out.println("slider write "+s);

    	}

    	//***************** TextArea ********************************************************

    	if(graphikObjekte.get(currentIndex).getComponent() instanceof JTextArea)

    	{

    		((JTextArea) graphikObjekte.get(currentIndex).getComponent()).append(s) ;

    		System.out.println("TextArea write "+s);

    	}    	

    	updateObjektPanel(); 	

    	return true;

    }

    // selektiere ein Element anhand des Namens

    public boolean select(String s)

    {

    	int index=0;

    	boolean exitFlag=false;

    	boolean foundFlag=true;

    	

    	while(exitFlag!=true){

        	String comp;

        	comp=graphikObjekte.get(index).getName();

        	if(s.equals(comp))

        	{

        		exitFlag=true;

        		foundFlag=true;

        		currentIndex=index;

        		System.out.println("GObjekt "+s+" gefunden, index="+index);

        	}

    		index++;

    		if(index>graphikObjekte.size()) exitFlag=true;

    	}

    	

    	return foundFlag;

    }

    // parse a command string

    public String com(String s){

    	

    	Scanner scanner=new Scanner(s);

    	String result="";

    	String par0="",par1="",par2="";



   		if(scanner.hasNext())par0=scanner.next();

   		if(scanner.hasNext())par1=scanner.next();

   		if(scanner.hasNext())par2=scanner.next();



   		System.out.print("scanned line: "+ par0+"-");

   		System.out.print(par1+"-");

   		System.out.println(par2);

   		

    	// wenn es ein Kommando ist, beginnt der String mit $

   		if(par0.contains("$")){

       		if(par0.equals("$create")){

    	   		System.out.println("create!! ");

    	   		create(par1,par2);	

       		}

       		if(par0.equals("$get")){

    	   		System.out.println("get!! ");

    	   		result=get();	

    	   		System.out.println("get!! "+result);

       		}

       		if(par0.equals("$select")){

    	   		System.out.println("select!! "+par1);

    	   		select(par1);	

       		}  

    	}

   		else write(s); // wenn par0 kein Kommando ist, sollten es Daten sein. Daten dann an aktuelles Objekt schreiben

    	

    	return result;		

    }

/**********************************************************************************

	

	main

	

***********************************************************************************/ 

    public static void main(String[] args) {

        JFrame fenster = new JFrame();

        fenster.setSize(500, 300);

        fenster.setLayout(new FlowLayout());

        

        TestGuiList guiPanel = new TestGuiList();

/*        

        guiPanel.create("button", "hi");

        System.out.println(guiPanel.get());

        guiPanel.create("label", "lie");

        System.out.println(guiPanel.getName());

        guiPanel.create("slider", "yes");        

        System.out.println(guiPanel.get());

        guiPanel.write(""+10);

        guiPanel.create("text", "no");

*/        

        String s="";

        

        guiPanel.com(		"$create slider Schieber1");		// einen Slider mit Namen "Schieber" erzeugen

        guiPanel.com(		"10");        					// den Slider auf 10 setzen

        s=guiPanel.com(		"$get");System.out.println(s);	// den Wert des Sliders holen        

        guiPanel.com(		"$create text Ausgabe");		// ein Textfeld mit Namen "Ausgabe" erzeugen

        guiPanel.com(		"Das ist ein kleiner Text "); 	// Text ausgeben

        guiPanel.com(		"$create button Knopf");		// einen Button mit dem Namen "Knopf" erzeugen

        guiPanel.com(		"$select Ausgabe");				// Das TextFeld "Ausgabe" wieder auswählen

        guiPanel.com(		"Da schreiben wir gleich nocn mehr");

        

        guiPanel.com(		"$create slider Schieber2");

        





        fenster.add(guiPanel);

        fenster.setVisible(true);



        // kleines Testprogramm:

        // einen Slider einlesen und den Wert an den anderen Slider ausgeben

        int n=0;

        for(n=0;n<40;n++)

        {	

	        guiPanel.com(		"$select Schieber2");

	        s=guiPanel.com(		"$get");

	        guiPanel.com(		"$select Schieber1");

	        guiPanel.com(		s);

	        ms(100);      

        }

        

        System.out.println("ende");

        

        // Beispielsyntax für GUI-Steuerung:

        

        // $create slider hallo		// Schieber mit Name "hallo" erzeugen 

        // 60						// Schieber auf Position 60 stellen					

        // $create text TestText	// Textfeld erzeugen

        // nur ein Gedicht		 	// Ausgabe auf Textfeld

        

        // $select hallo			// Focus auf Schieber "hallo" setzen

        // $get						// Wert des Schiebers einlesen ( eine Zahl z.B. 74 )

        // $command setPos 100 100	// Schieber an Postion 100,100 setzen

        // $command setSize 200 50	// Schiebergröße verändern

        

    } 

    static public void ms(int n) {

        try {

            Thread.sleep(n);

        } catch (InterruptedException e) {

            e.printStackTrace();

        }

    }

}

/**********************************************************************************



	class GObject



***********************************************************************************/ 

class GObjekt{

	private JComponent component;

	private String name;

	

	public GObjekt(JComponent component, String s) {

		this.component = component;

		this.name=s;

	}

	

	public void setComponent(JComponent component) {

		this.component = component;

	}

	public JComponent getComponent() {

		return component;

	}

	public void setName(String name) {

		this.name = name;

	}

	public String getName() {

		return name;

	}

}
 

Marco13

Top Contributor
Wo-ho... so eine Scriptsprache kann kompliziert sein... Hast du dir da schon genauer über die Grammatik usw. Gedanken gemacht?
 

Marco13

Top Contributor
Ja, gut ... Wieder die Frage, wie weit das gehen soll. Man könnte relativ einfach mit Reflection einen Großteil dessen abdecken, einfacher wäre dann sowas wie
@create JSlider
@setPosition 10, 10
...

Also praktisch Klassen- und Methodennamen in die Scriptdatei schreiben...
 

robochris

Aktives Mitglied
Hmm, was "Reflection" ist, weiß ich nicht.

Im vorher geposteten Code habe Ich aber schon einige Funktionen implementiert. Das $create funktioniert für Button, Slider, Label und TextArea.

Java:
 guiPanel.com(       "$create slider Schieber1");        // einen Slider mit Namen "Schieber" erzeugen
 guiPanel.com(       "10");                          // den Slider auf 10 setzen
 
 s=guiPanel.com(     "$get");System.out.println(s);  // den Wert des Sliders holen        
 
 guiPanel.com(       "$create text Ausgabe");        // ein Textfeld mit Namen "Ausgabe" erzeugen
 guiPanel.com(       "Das ist ein kleiner Text ");   // Text ausgeben
 guiPanel.com(       "$create button Knopf");        // einen Button mit dem Namen "Knopf" erzeugen
 guiPanel.com(       "$select Ausgabe");             // Das TextFeld "Ausgabe" wieder auswählen
 guiPanel.com(       "Da schreiben wir gleich nocn mehr");
 guiPanel.com(       "$create slider Schieber2");

Es gibt schon ein kleine Testroutine, welchen den Wert eines Slider ausliest und in den anderen Slider schreibt.
Java:
        // einen Slider einlesen und den Wert an den anderen Slider ausgeben
         int n=0;
         for(n=0;n<40;n++)
         {   
             guiPanel.com(       "$select Schieber2");
             s=guiPanel.com(     "$get");
             guiPanel.com(       "$select Schieber1");
             guiPanel.com(       s);
             ms(100);      
         }
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Mit Reflection kann man (vieles, aber unter anderem) Methoden aufrufen, wenn man nur ihren Namen hat. Man kann also aus dem String "setPosition" mit sowas wie (Pseudocode)

Method method = someClass.getMethod("setPosition");
method.invoke(someObject, arguments);

die Methode "setPosition" aufrufen. Wäre wohl einen Blick wert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
JStickman JTree, JScrollPane, Liste mit graphischer Suchleiste - Dateimanager Java Basics - Anfänger-Themen 10
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
R Liste und Arrays Java Basics - Anfänger-Themen 12
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
M Verkettete Liste Java Basics - Anfänger-Themen 1
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
E Elemente aus Liste entfernen und hinzufügen Java Basics - Anfänger-Themen 3
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
E Suchfunktion in einer Liste Java Basics - Anfänger-Themen 39
T ungeordnete Werte-Paare in einer Liste Java Basics - Anfänger-Themen 7
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
f3mys Objektwerte in Liste speichern und wieder abrufen Java Basics - Anfänger-Themen 23
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
K Warum ist die binäre Suche bei der verketteten Liste nicht so effektiv? Java Basics - Anfänger-Themen 3
I 2D-Array Position der Liste ausgeben. Java Basics - Anfänger-Themen 2
I Liste von Infos von einer eigenen Annotation in Liste speichern Java Basics - Anfänger-Themen 0
P Doppelte werte in einer Liste zählen Java Basics - Anfänger-Themen 11
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
Igig1 Autoparkplatz verkettete Liste erstes und letztes Auto Java Basics - Anfänger-Themen 13
thor_norsk Verkette Liste Java Basics - Anfänger-Themen 27
R Rückgabe: verkettete Liste Java Basics - Anfänger-Themen 2
R einfach verkettete Liste Java Basics - Anfänger-Themen 1
R einfach verkettete Liste Java Basics - Anfänger-Themen 12
O Doppelt verkette Liste Element löschen Java Basics - Anfänger-Themen 15
B GUI extension mit einer Liste verbinden Java Basics - Anfänger-Themen 1
B Verkettete Liste durchgehen und einzelne Elemente in neue Liste tun Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
M Java Liste streamen Java Basics - Anfänger-Themen 10
AmsananKING Aussortierung einer Liste Java Basics - Anfänger-Themen 8
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
A Korrigierte <String> Liste zurückgeben Java Basics - Anfänger-Themen 22
S Kann nicht auf die Liste zugreifen mit der Methode!? Java Basics - Anfänger-Themen 3
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
I Liste gruppieren nach Monat? Java Basics - Anfänger-Themen 5
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
Y Knoten an einem gegebenen Index aus einer Liste entfernen. Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
Gaudimagspam Linked Liste Java Basics - Anfänger-Themen 4
Z Liste umkehren Java Basics - Anfänger-Themen 1
S Eine Liste kopieren Java Basics - Anfänger-Themen 13
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
java3690 eine liste sortieren Java Basics - Anfänger-Themen 12
J Element aus Liste nehmen Java Basics - Anfänger-Themen 3
B JUnit 4: Wie man die eigene Liste testen kann [TDD] Java Basics - Anfänger-Themen 46
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
A Doppelt verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 17
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
H Liste speichern. Was lässt sich verbessern? Java Basics - Anfänger-Themen 7
P Performance Array und Liste Java Basics - Anfänger-Themen 13
M QuickSort und Liste Java Basics - Anfänger-Themen 6
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
V_Fynn03 Beliebiges Element in einer Liste löschen (Java)(Lineare Datenstrukturen) Java Basics - Anfänger-Themen 9
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
CptK Koordinate in Liste suchen Java Basics - Anfänger-Themen 20
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
D Doppelt Verkettete Zirkular-Liste Java Basics - Anfänger-Themen 1
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 1
M Array liste Verdrehen Java Basics - Anfänger-Themen 8
A Verkettete Liste Java Basics - Anfänger-Themen 2
J Strings untereinander in einer Liste vergleichen Java Basics - Anfänger-Themen 18
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
S IndexOutOfBoundsException beim hinzufügen eines Elements zu einer Liste Java Basics - Anfänger-Themen 11
B Liste sortieren? Java Basics - Anfänger-Themen 4
O Anonyme Klasse einer Liste erstellen Java Basics - Anfänger-Themen 7
B SWAP List; Liste neu anordnen Java Basics - Anfänger-Themen 4
B CSS Klassen in eine Liste schreiben Java Basics - Anfänger-Themen 4
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 8
L verkettete Liste Java Basics - Anfänger-Themen 15
scratchy1 doppelt verkettete Liste testen Java Basics - Anfänger-Themen 8
O ADT Liste z. B. Java Basics - Anfänger-Themen 15
B sortierte Liste Java Basics - Anfänger-Themen 4
O Knoten und Liste verarbeitung Java Basics - Anfänger-Themen 20
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8
J Eine Liste von Listen erstellen Java Basics - Anfänger-Themen 11
A Einträge aus Tupeln nach Regeln in Liste speichern Java Basics - Anfänger-Themen 8
Queiser Liste zurückgeben Java Basics - Anfänger-Themen 7
T Collections Geeignete Collection/Liste/Datenbank Java Basics - Anfänger-Themen 17
S spezielle Wörter aus Liste entfernen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben