Components in einer ArrayList aus anderer Klasse speichern

Status
Nicht offen für weitere Antworten.
A

Amateur

Gast
Hallo,
ich war schon mal hier mit meiner Frage, aber keine konnte mir so richtig helfen, wahrscheinlich dass ich es schlecht erklärt hatte, deshalb versuche ich es noch einmal und hoffe das mir jemand helfen wird.

Also es sollen Klassen dynamisch geladen werden und alle Componenten diese Klasse sollen gespeichert werden,
ohne dass ich vorhier weis welche class ich aufrufe und eine instanz von den erzeuge, oder von alle zusammen die ich in Package habe.

Ich Danke euch im Voraus für die Antworten und wünsche euch alles Gute.
Code:
package myproject;
import javax.swing.*;
import java.util.*;

  public class CMain extends JTextField {
  public static void main(String[] args) {

  try{
        /***
        package "myproject" wo alle Klassen liegen
        und "CGui.class" der dynamisch aus Datenbank aufgerufen wird
        ***/
        Class c=Class.forName("myproject.CGui");
        c.newInstance();

        /***
        Hier in list will ich alle Componenten speichern die ich in CGUI.class habe
        ohne das ich auf solche  Weise

        CGUI instanz=new CGUI();
        instanz.username;

        auf die zugreife, sondern es soll dynamisch pasieren, da ich nicht weis welche class aufgerufen wird
        in class CGui darf ich auch nicht irgendwelche Instanzen von CMain erzeugen
        es soll so bleiben in diesen so wie es jetzt ist.
        ***/
        
        /*Wie bekomme ich alle Componenten hier hier und wie setze ich dann die Werte in Felder ein
        soll ich dann Casting machen und wenn ja wie ????*/
        ArrayList list=new ArrayList();
     }

        catch(Exception ex)
        {System.out.println("ERROR "+ex);}
  }
}

Code:
package myproject;
import java.awt.*;
import javax.swing.*;

public class CGui extends JFrame {

  JTextField username = new JTextField();
  JPasswordField password = new JPasswordField();
  JButton ok = new JButton();
  JButton exit = new JButton();

  public CGui() {
    try {
    username.setBounds(new Rectangle(241, 70, 223, 26));
    this.getContentPane().setLayout(null);
    password.setBounds(new Rectangle(241, 110, 224, 29));
    ok.setBounds(new Rectangle(243, 179, 90, 23));
    ok.setText("OK");
    exit.setBounds(new Rectangle(375, 180, 88, 23));
    exit.setText("Exit");
    this.getContentPane().add(username, null);
    this.getContentPane().add(password, null);
    this.getContentPane().add(ok, null);
    this.getContentPane().add(exit, null);
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
}
 
B

Beni

Gast
Wieso kann sich CGui seine Werte nicht selbst setzen?

Du könntest ja z.B. ein Interface machen, das alle Klassen (die dort geladen werden können) implementieren müssen, und nur zu diesem Interface casten:

Code:
public interface Loadable{
  // hier sucht sich das Loadable die Informationen zusammen, welche es braucht. Z.B. username, etc...
  // Natürlich könnte man hier auch was anderes als das CMain eintragen, das ist halt die Klasse, die mir gerade
  // ins Auge gesprungen ist.
  public void load( CMain informations );
}

Code:
public class CGui extends JFrame implements Loadable{
  [...]
  public void load( CMain main ){
    String userName = main.getUsername(); 
     [...]
  }
}

Code:
  public class CMain extends JTextField {
  public static void main(String[] args) {

  try{
        CMain cmain = ... // irgendein CMain

        Class c=Class.forName("myproject.CGui");
        Object object = c.newInstance();  // speichern muss man die neue Instanz auch..

        Loadable load = (Loadable)load; // jetzt ist es egal, was sich hinter "Loadable" verbirgt.
       
        load.load( cmain );  // Das Loadable sucht sich die Informationen zusammen, welche es benötigt.
     }

        catch(Exception ex)
        {System.out.println("ERROR "+ex);}
  }
}

Naja, ich hab auch jetzt noch mühe zu verstehen, was du eigentlich willst. Vielleicht kannst du mal kurz beschreiben, für was du das benötigst?

(P.S. und versuch doch ein bisschen deutsch-grammatikalisch korrekter zu schreiben, zumindest ich habe manchmal Mühe den Sinn deiner Sätze zu entschlüsseln :wink:).

mfg Beni
 
A

Amateur

Gast
Danke Beni für deine Antwort, die Sache ist die, wenn ich meine Programm fertig habe, sollen in Zukunft neu Formulare von Benutzern, die keine Programmier kenntnisse besitzen, mit Drap und Drop Technik estellt werden, es soll, wie du sagst, zusammengecklikt werden, deshalb habe ich auch geschrieben das in Class CGui darf nichts mehr rein es soll so bleiben wie es jetzt ist..
 
B

Beni

Gast
Dann hilft vielleicht diese Lösung: da das alles auf einem Container gespeichert ist, kannst du die Childs herausfinden, und das rekursiv einfüllen:

Code:
public void save( Component c ){
  if( c instanceof Container ){
    Container cont  = (Container)c;
    for( int i ; i < cont.getComponentCount(); i++ )
      save( c.getComponent( i ));
  }

  if( c instanceof JTextField ){
    JTextField field = (JTextField)c;
    String text = field.getText(); 
    [...]
  }
  else if( c instanceof ... ){  
  }

  // Vielleicht auch die Position speichern
  int x = c.getX();
  [...]

}
 
A

Amateur

Gast
Eine sehr gute Möglichkeit, aber wie bekomme ich Components in die Methode, wenn ich auf die überhaupt nicht zugreifen kann ? :L

Mit freundlichen Grüßen
Amateur
 
B

Beni

Gast
Jetzt versteh ich nicht ganz (wieder mal :) ). Was zieht denn der User hin und her? Sind das keine Components (dann hilft mein letzter Post ziemlich wenig). Falls es Components sind, muss es ja irgendein Parent-Container geben, auf dem alle sitzen.
Falls es keine sind, was ist es dann?
 
A

Amateur

Gast
Hallo Beni ich will bloß die Werte in class CGui setzen und auslesen können,was ist daran schwer zuverstehen ?
die class CGui darf dabei nicht mehr geändert werden sondern in solche Zustand bleiben wie ich die unten zeige, also extends, implements, oder instance von andere Klassen dürfen nicht rein, also Sachen die ein Handzugriff in Quelcode benötigen.

Mögliche Lösung vielleicht wäre mit java.lang.reflect.*; das ganze hinzubekommen,
die Felder kriege ich raus aber die Werte ändern klapts's nicht. ???:L

vielleicht schafst du es Beni, oder hast du andere Vorschläge?

ich danke dir für deine Mühe

Code:
package myproject; 
import java.awt.*; 
import javax.swing.*; 

public class CGui extends JFrame { 

  JTextField username = new JTextField(); 
  JPasswordField password = new JPasswordField(); 
  JButton ok = new JButton(); 
  JButton exit = new JButton(); 

  public CGui() { 
    try { 
    username.setBounds(new Rectangle(241, 70, 223, 26)); 
    this.getContentPane().setLayout(null); 
    password.setBounds(new Rectangle(241, 110, 224, 29)); 
    ok.setBounds(new Rectangle(243, 179, 90, 23)); 
    ok.setText("OK"); 
    exit.setBounds(new Rectangle(375, 180, 88, 23)); 
    exit.setText("Exit"); 
    this.getContentPane().add(username, null); 
    this.getContentPane().add(password, null); 
    this.getContentPane().add(ok, null); 
    this.getContentPane().add(exit, null); 
    } 
    catch(Exception e) { 
      e.printStackTrace(); 
    } 
  } 
}

Code:
package uebung;
import java.lang.reflect.*;
import javax.swing.*;

public class ShowClass extends JComponent{

  public static void main(String[] args)throws ClassNotFoundException {
   Class c=Class.forName("uebung.Uebung");
    print_class(c);
  }

    public static void print_class(Class c)
    {
      System.out.println(" // Felder");
      Field[] field=c.getDeclaredFields();

         for(int x=0; x < field.length; x++ )
         {
          print_field(field[x]);
         }
    }

    public static void print_field(Field f)
    {
    System.out.println(" "+f.getType()+ " "+f.getName()+";");
    }
}
 

Isaac

Bekanntes Mitglied
Wenn du mit Drag & Drop arbeiten willst muss deine Anwendung ja laufen. Ohne Laufende Anwendung kein Droptarget. Also wenn du ein Droptarget hast füllt deine Anwendung das doch zur Laufzeit durch entsprechende Methoden automatisch. Da brauchst du nicht mal Reflection.

Ich sage normal nie was gegen die Rechtschreibung in Foren, ich achte meist selber nicht wirklich drauf da ich in der Firma meist wenig Zeit habe und einfach runtertippe was ich sagen will. Ich will auch hier nichts gegen deine Rechtschreibung sagen, ich weiss wie diese Fehler zustande kommen. Aber es ist sehr sehr schwer zu helfen wenn man die Frage nicht versteht

Also es sollen Klassen dynamisch geladen werden und alle Componenten diese Klasse sollen gespeichert werden,
ohne dass ich vorhier weis welche class ich aufrufe und eine instanz von den erzeuge, oder von alle zusammen die ich in Package habe

Ich verstehe den Satz nicht mal :?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W JTable und mehrere Components in einer Zelle AWT, Swing, JavaFX & SWT 4
MiMa JavaFX Runtime components are Missing??? AWT, Swing, JavaFX & SWT 3
F JavaFX JavaFX Builden: JavaFX Runtime components are missing AWT, Swing, JavaFX & SWT 0
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
K JDialog zeigt Components nicht an AWT, Swing, JavaFX & SWT 3
X Alle Components eines JPanels Enablen AWT, Swing, JavaFX & SWT 7
G Components erscheinen erst bei Änderung des Frames AWT, Swing, JavaFX & SWT 3
A Swing Liste von komplexen Components AWT, Swing, JavaFX & SWT 2
xehpuk Swing Erst Components, dann Container zeichnen AWT, Swing, JavaFX & SWT 2
I LayoutManager CardLayout mit anonymen Components AWT, Swing, JavaFX & SWT 4
J remove() components bei event von JComboBox AWT, Swing, JavaFX & SWT 2
M Special design of Swing components AWT, Swing, JavaFX & SWT 14
hdi dynamische Iteration über Components AWT, Swing, JavaFX & SWT 3
V components nordwest alignen AWT, Swing, JavaFX & SWT 4
P Components überlagern AWT, Swing, JavaFX & SWT 8
B HTML in Swing Components (JLabel) AWT, Swing, JavaFX & SWT 7
S 2 components & 1 button AWT, Swing, JavaFX & SWT 4
hdi Fenster mit variablen Components AWT, Swing, JavaFX & SWT 3
M icons für die java.swing components wie jbutton etc AWT, Swing, JavaFX & SWT 5
K Components auf Codeebene vor reverse engineering schützen? AWT, Swing, JavaFX & SWT 16
K Layout - Components richtig setzen AWT, Swing, JavaFX & SWT 9
G fullscreen GUI - eigene components? AWT, Swing, JavaFX & SWT 2
G Components form AWT, Swing, JavaFX & SWT 3
P Components updaten AWT, Swing, JavaFX & SWT 2
masta // thomas GridBagLayout - Zwischenraum zw. Components AWT, Swing, JavaFX & SWT 7
G components unbeweglich machen AWT, Swing, JavaFX & SWT 3
conan2 getFontMetrics() außerhalb des Components AWT, Swing, JavaFX & SWT 7
F Components aneinander AWT, Swing, JavaFX & SWT 2
W Components Focus mit TAB-Taste VERTIKAL bewegen AWT, Swing, JavaFX & SWT 4
V Zugriff auf Components aus einem ActionListener AWT, Swing, JavaFX & SWT 3
meez Striche rund um Components AWT, Swing, JavaFX & SWT 6
K MouseEvents vor den Components abfangen? AWT, Swing, JavaFX & SWT 4
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
mac2010 JavaFX Einbindung einer Karte AWT, Swing, JavaFX & SWT 1
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
G Verknüpfung einer pdf Datei AWT, Swing, JavaFX & SWT 2
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
F jTree und das Model aus einer eigenen Klasse AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
N Wie kann ich zwei Grafiken in einer Oberfläche anzeigen lassen? AWT, Swing, JavaFX & SWT 8
@SupressWarnings() JavaFX Auf den Controller einer ListCell zugreifen AWT, Swing, JavaFX & SWT 4
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
H 3 verschiedene Nachrichten in einer FXML View die Infos kommen aus DB AWT, Swing, JavaFX & SWT 4
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
B Textfelder in einer ListView ausgeben AWT, Swing, JavaFX & SWT 13
J Searchfunktion auf einer MS Access Datenbank AWT, Swing, JavaFX & SWT 7
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
M Inhalte einer FlowPane AWT, Swing, JavaFX & SWT 4
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
E Prinzip: wie man Ereignisse in einer GUI verarbeit. Frage zum Design? AWT, Swing, JavaFX & SWT 10
FRI3ND JavaFX: Wie kann ich einer Scene Argumente übergeben? AWT, Swing, JavaFX & SWT 14
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
G JavaFX JavaFX-Dialog aus einer Nicht-JavaFX-Anwendung heraus AWT, Swing, JavaFX & SWT 1
1 Swing Progressbar benutzen um Fortschritt einer Methode anzuzeigen AWT, Swing, JavaFX & SWT 4
K JavaFX ViewTable mit einer LinkedList befüllen AWT, Swing, JavaFX & SWT 3
L CardLayout in einer Klasse? AWT, Swing, JavaFX & SWT 2
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
D Java FX Image in einer Webanwendung annotieren und den Bereich ausschneiden AWT, Swing, JavaFX & SWT 0
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing Ausführung einer SwingWorker Klasse stoppen AWT, Swing, JavaFX & SWT 4
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
MiMa Selektion aus einer ListView AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben