Announcement

Collapse
No announcement yet.

Daten zwischen Klassen austauschen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Daten zwischen Klassen austauschen

    Hi,

    im Vergleich zu euch allen bin ein Java-Starter und fange gerade an meine ersten Versuche mit GUI und Swing zu machen. Das klappt auch schin ganz gut....für die einen Problemchen braucht man halt etwas länger....und für dieses brauche ich jetzt schon sehr lange :-/

    Also ich habe Klasse für einen JDialog programmiert, in dem man Wörter eingibt. Diese Wörter möchte ich dann bei Klixx auf einen Button in einer verketteten Liste speichern, welche nicht nur in der Klasse/Methode existiert, sondern auch in der main verfügbar ist.... ich komm einfach net drauf....

    Wie kann ich Elemente in eine Liste der main-Methode über eine Methode einer andere Klasse hinzufügen???

    Vielen Dank für Eure Hilfe!!

    Gruß
    Olli

    hier mein Code (CItem sind die Objekte, welche in der Liste geadded werden sollen):



    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.Iterator;
    import java.util.LinkedList;

    public class addKrit extends JDialog implements ActionListener {
    private static String suchbegriff;
    JTextField eingabefeld = new JTextField();
    CItem test = new CItem();





    // -----------------------------------------------------------------------------------------
    // Buttons/Labels

    public addKrit() {
    super();
    this.setTitle("Kriterium hinzufügen");
    this.setResizable(false);
    this.setSize(new Dimension(445, 113));
    this.setModal(true);
    this.getContentPane().setLayout(null);
    this.setLocation(600,600);

    eingabefeld.setText("");
    eingabefeld.setBounds(new Rectangle(103, 19, 321, 22));

    // -----------------------------------------------------------------------------------------
    // Buttons/Labels
    JLabel label = new JLabel();
    label.setText("Kriterium:");
    label.setBounds(new Rectangle(13, 15, 80, 29));

    JButton btnOK = new JButton();
    btnOK.setBounds(new Rectangle(13, 51, 202, 25));
    btnOK.setText("hinzufügen");
    this.getRootPane().setDefaultButton(btnOK);
    btnOK.addActionListener(this);

    JButton btnAbbrechen = new JButton();
    btnAbbrechen.setBounds(new Rectangle(222, 51, 202, 25));
    btnAbbrechen.setText("Abbrechen");
    btnAbbrechen.addActionListener(this);

    this.getContentPane().add(label, null);
    this.getContentPane().add(eingabefeld, null);
    this.getContentPane().add(btnOK, null);
    this.getContentPane().add(btnAbbrechen, null);

    }



    public void actionPerformed(ActionEvent e) {
    String label = e.getActionCommand();

    if(label.equals("hinzufügen")) {
    suchbegriff = null;
    suchbegriff=eingabefeld.getName();

    test.Kriterium=getSuchbegriff();
    //CItem aktuell.setKriterium(eingabefeld.getText());
    KritList.add(aktuell);
    //KritList.add(new CItem(eingabefeld.getText()));

    System.out.println(aktuell.Kriterium); //eingabe testen
    setVisible(false);
    }
    else if(label.equals("Abbrechen")) {
    suchbegriff = null;
    setVisible(false);
    }


    }



    // Diese Funktion liefert den eingegebenen Suchstring zurück
    public static String getSuchbegriff() {
    return suchbegriff;
    }
    }

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    import java.awt.Color;
    import java.awt.Container;

    import javax.swing.Box;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.JTabbedPane;

    import java.util.Iterator;
    import java.util.LinkedList;



    public class main {





    CItem aktuell=new CItem();


    public static void main(String args[]) {
    // Fenster erzeugen und anzeigen
    LinkedList<CItem> KritList = new LinkedList<CItem>();
    Iterator<CItem> it=KritList.iterator();

    CItem test = new CItem();
    CItem aktuell=new CItem();


    gui hauptfenster = new gui();
    hauptfenster.setSize(1200,800);
    hauptfenster.setLocation(100,100);
    hauptfenster.setVisible(true);

    }

  • #2
    Wenn du den Code formatierst, schaue ich ihm mir an.

    Ansonsten schreibe Getter/Setter die die Daten aus einer Klasse in eine andere geben bzw. aus diesen geholt werden können.

    Beispiel

    Klasse A erstellt eine Instanz der Klasse B und will auf deren Daten zugreifen. Klasse B enthält Getter-Methoden, die von Klasse A aufgerufen werden können.

    Klasse A

    Code:
     
    B b=new B();
    int nummer=b.getNummer();
    Klasse B

    Code:
     
    private int nummer=5;
     
    public int getNummer()
    {
    return nummer;
    }
    Zuletzt editiert von Christian Marquardt; 24.06.2010, 22:23.
    Christian

    Comment


    • #3
      hi,

      brauch ich denn für LinkedList<CItem> KritList = new LinkedList<CItem>(); getter und setter? hier ist doch schon .add(blups) implementiert, oder? mein Problem ist vielmehr, dass Eclipse die Liste aus der main-Funktion in der methode der JDialog-Klass nicht kennt und ich diese dann nicht mit name.add(blups) ansprechen kann. Die Objekte für die Liste kann ich ja in der JDialog-Klasse instanziieren, aber bekomme Sie nicht heraus in die liste der main-methode....das ist mein blödes (Anfänger-)Problem... :-/

      Comment


      • #4
        Originally posted by Rambo View Post
        public static void main(String args[]) {
        // Fenster erzeugen und anzeigen
        LinkedList<CItem> KritList = new LinkedList<CItem>();
        Iterator<CItem> it=KritList.iterator();

        CItem test = new CItem();
        CItem aktuell=new CItem();


        gui hauptfenster = new gui();
        hauptfenster.setSize(1200,800);
        hauptfenster.setLocation(100,100);
        hauptfenster.setVisible(true);

        }

        Und jetzt schreibst du noch ein
        Code:
        hauptfenster.setKritList(KritList);
        in der main()-Methode dazu.

        In deine Klasse gui fügst du jetzt noch folgendes hinzu:
        Code:
        private LinkedList<CItem> KritList = null;
        
        public void setKritList(LinkedList<CItem> kritList) {
            this.KritList = kritList;
        }
        Dann "kennt" deine gui-Klasse die KritList-Liste der main-Klasse. Jetzt kannst du innerhalb der gui-Klasse auf KritList zugreifen und dort deine Einträge einfügen.

        Comment


        • #5
          Hi danke!

          ich werd´s gleich mal probieren :-)

          Comment

          Working...
          X