Zum Inhalt springen

Text im Textfeld soll nach Speichern in JTree


sunnyw86

Empfohlene Beiträge

Hallo Leute!

Ich hoffe ihr könnt mir helfen.

Ich habe ein Fenster mit einem Textfeld. Nach dem man einen Text in das Textfeld eingegeben hat und auf den Button Speichern klickt, soll im Tree(befindet sich in einem anderen Fenster) den Text im Tree übernehmen.

Leider habe ich noch nichts wirklich brauchbares im Netz gefunden. Habt ihr vieleicht ein paar Tips wo ich nachschauen kann?

Gruß

sunnyw86

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit Links kann ich nicht dienen. Aber mit einer Idee: Sobald der Speicher-Button gedrückt wird, muß der Text aus dem Feld ausgelesen und dem Model des JTrees übergeben werden.

Im Grunde benötigst Du ein Objekt, das als ActionListener auf dem Button registriert ist und beide Steuerelemente kennt. Oder die besitzenden Fenster und die Steuerlemente erfragen kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

So ich versuche es ersteinmal, dass ich den Text einen Textfeld gebe.

Er zeigt mir keine Fehler an, aber es klappt trotzdem nicht.

Hier der Quellcode für mein Hauptfenster. Hier ist das Textfeld, welches den Text von dem TextFeld im anderen Fenster übernehmen soll.

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

/*

* Created by JFormDesigner on Thu Jan 25 07:59:22 CET 2007

*/

/**

* @author User #3

*/

public class TreeBsp extends JFrame {

public TreeBsp()

{

//super();

initComponents();

}

private void menuItem1ActionPerformed(ActionEvent e)

{

Textf bsp = new Textf();

bsp.setVisible(true);

}

public void testMethode(String neu)

{

//neu="Tach";

this.setFocusable(true);

textField1.setFocusable(true);

textField1.setText(neu);

}

private void initComponents()

{

// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents

scrollPane1 = new JScrollPane();

tree1 = new JTree();

textField1 = new JTextField();

popupMenu1 = new JPopupMenu();

menuItem1 = new JMenuItem();

//======== this ========

Container contentPane = getContentPane();

contentPane.setLayout(null);

//======== scrollPane1 ========

{

//---- tree1 ----

tree1.setComponentPopupMenu(popupMenu1);

scrollPane1.setViewportView(tree1);

}

contentPane.add(scrollPane1);

scrollPane1.setBounds(45, 10, 125, scrollPane1.getPreferredSize().height);

contentPane.add(textField1);

textField1.setBounds(195, 95, 130, textField1.getPreferredSize().height);

String txt="hallo";

textField1.setText(txt);

((JComponent)contentPane).setPreferredSize(new Dimension(485, 390));

pack();

setLocationRelativeTo(getOwner());

//======== popupMenu1 ========

{

//---- menuItem1 ----

menuItem1.setText("Neu");

menuItem1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

menuItem1ActionPerformed(e);

}

});

popupMenu1.add(menuItem1);

}

// JFormDesigner - End of component initialization //GEN-END:initComponents

}

// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables

private JScrollPane scrollPane1;

private JTree tree1;

private JTextField textField1;

private JPopupMenu popupMenu1;

private JMenuItem menuItem1;

// JFormDesigner - End of variables declaration //GEN-END:variables

}

Hier mein Quellcode, wo ich den Text eingebe und wenn ich auf Button Speichern klicke, soll das in dem TextFeld im anderen Fenster übernommen werden.

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

/*

* Created by JFormDesigner on Thu Jan 25 08:00:03 CET 2007

*/

/**

* @author User #3

*/

public class Textf extends JFrame

{

public Textf()

{

initComponents();

}

private void button1ActionPerformed(ActionEvent e)

{

String text;

text = textField1.getText();

//textField2.setText(text);

this.setVisible(false);

TreeBsp tb = new TreeBsp();

tb.setFocusable(true);

tb.testMethode(text);

}

private void initComponents() {

// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents

textField1 = new JTextField();

button1 = new JButton();

textField2 = new JTextField();

//======== this ========

Container contentPane = getContentPane();

contentPane.setLayout(null);

contentPane.add(textField1);

textField1.setBounds(75, 45, 145, textField1.getPreferredSize().height);

//---- button1 ----

button1.setText("Speichern");

button1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

button1ActionPerformed(e);

}

});

contentPane.add(button1);

button1.setBounds(95, 120, 120, button1.getPreferredSize().height);

contentPane.add(textField2);

textField2.setBounds(85, 195, 115, textField2.getPreferredSize().height);

((JComponent)contentPane).setPreferredSize(new Dimension(400, 300));

pack();

setLocationRelativeTo(getOwner());

// JFormDesigner - End of component initialization //GEN-END:initComponents

}

// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables

private JTextField textField1;

private JButton button1;

private JTextField textField2;

// JFormDesigner - End of variables declaration //GEN-END:variables

}

Wo liegt mein Fehler?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wo liegt mein Fehler?

DU SOLLST TAGS BENÜTZEN!!!

die () sind eigentlich [].

(php)

int i = 0;

(/php)

wird dann:


int i = 0;
[/php]

viel besser. und die leutze machen sich mühe dein code zu lesen.

ausserdem könnter man vielleicht unnötige dinge von vornherein weglassen. die initComponents-methode interessiert keine sau ;).

für jede klasse ein neues tag anfangen.

dann helfen wir gerne weiter!

bigredeyes

Link zu diesem Kommentar
Auf anderen Seiten teilen

Tut mir leid.:rolleyes:

So ich versuche es ersteinmal, dass ich den Text einen Textfeld gebe.

Er zeigt mir keine Fehler an, aber es klappt trotzdem nicht.

Hier der Quellcode für mein Hauptfenster. Hier ist das Textfeld, welches den Text von dem TextFeld im anderen Fenster übernehmen soll.


import java.awt.*;

import java.awt.event.*;

import javax.swing.*;



public class TreeBsp extends JFrame 

{

      public TreeBsp() 

     {

           initComponents();

     }


     private void menuItem1ActionPerformed(ActionEvent e)

     {

          Textf bsp = new Textf();

          bsp.setVisible(true);

     }


     public void testMethode(String neu)

     {

          this.setFocusable(true);

          textField1.setFocusable(true); 

          textField1.setText(neu);

      }


      private void initComponents() 

      {

            scrollPane1 = new JScrollPane();

            tree1 = new JTree();

            textField1 = new JTextField();

            popupMenu1 = new JPopupMenu();

            menuItem1 = new JMenuItem();


            //======== this ========

            Container contentPane = getContentPane();

            contentPane.setLayout(null);


            //======== scrollPane1 ========

           {

                    //---- tree1 ----

                    tree1.setComponentPopupMenu(popupMenu1);

                    scrollPane1.setViewportView(tree1);

          }

          contentPane.add(scrollPane1);

     scrollPane1.setBounds(45, 10, 125, scrollPane1.getPreferredSize().height);

          contentPane.add(textField1);

      textField1.setBounds(195, 95, 130, textField1.getPreferredSize().height);

          String txt="hallo";

          textField1.setText(txt);


       ((JComponent)contentPane).setPreferredSize(new Dimension(485, 390));

          pack();

          setLocationRelativeTo(getOwner());


           //======== popupMenu1 ========

          {

                  //---- menuItem1 ----

                  menuItem1.setText("Neu");

                  menuItem1.addActionListener(new ActionListener() 

                 {

                          public void actionPerformed(ActionEvent e) 

                         {

                                    menuItem1ActionPerformed(e);

                          }

                 });

                 popupMenu1.add(menuItem1);

            }

     }


      private JScrollPane scrollPane1;

      private JTree tree1;

      private JTextField textField1;

      private JPopupMenu popupMenu1;

      private JMenuItem menuItem1;

}


Hier mein Quellcode, wo ich den Text eingebe und wenn ich auf Button Speichern klicke, soll das in dem TextFeld im anderen Fenster übernommen werden.

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;


public class Textf extends JFrame 

{

      public Textf() 

      {

            initComponents();

      }


       private void button1ActionPerformed(ActionEvent e) 

       {

             String text;

             text = textField1.getText();

             //textField2.setText(text);


             this.setVisible(false);

             TreeBsp tb = new TreeBsp();

             tb.setFocusable(true);

             tb.testMethode(text);

        }


        private void initComponents() 

        {

             textField1 = new JTextField();

             button1 = new JButton();

             textField2 = new JTextField();


               //======== this ========

              Container contentPane = getContentPane();

              contentPane.setLayout(null);

              contentPane.add(textField1);

        textField1.setBounds(75, 45, 145, textField1.getPreferredSize().height);


            //---- button1 ----

            button1.setText("Speichern");

            button1.addActionListener(new ActionListener() 

            {

                   public void actionPerformed(ActionEvent e) 

                   {

                           button1ActionPerformed(e);

                    }

              });

             contentPane.add(button1);

           button1.setBounds(95, 120, 120, button1.getPreferredSize().height);

             contentPane.add(textField2);

      textField2.setBounds(85, 195, 115, textField2.getPreferredSize().height);


      ((JComponent)contentPane).setPreferredSize(new Dimension(400, 300));

             pack();

             setLocationRelativeTo(getOwner());

        }


        private JTextField textField1;

        private JButton button1;

        private JTextField textField2;

}


Wo liegt mein Fehler?

Link zu diesem Kommentar
Auf anderen Seiten teilen

schön, nun kann mann und frau es lesen.

als erstes behaupte ich: du machst noch nicht lange objekt-orientiertes programmieren.

fang kleiner an.

dein grundproblem:

wie kriege ich infos von einer klasse zur nächsten???

bei deinem code:

1) treebsp erstellen (ich denke du hast noch irgendwo ein main() in der ein new treebsp() erstellt wird).

2) du klickst und erstellst dein textf

3) du klickst dein button im textf


private void button1ActionPerformed(ActionEvent e) 

       {

             String text;

             text = textField1.getText();

             //textField2.setText(text);


             this.setVisible(false);

             TreeBsp tb = new TreeBsp(); <- GAAANZ BÖSE!!!!

             tb.setFocusable(true);

             tb.testMethode(text);

        }

hier erstellt du noch einen treebsp! der ist aber unsichtbar, weil du setVisible nicht aufrufst. aber eigentlich willst du kein 2. frame, sondern es in den ersten schreiben. du solltest dafür sorgen, das dein texf den treebsp kennt. und zwar nicht irgendeinen, sonder genau den, den du als erstes erstellst. möglichkeiten: 1) dein textf braucht einen konstruktor der ein treebsp als argument hat.

public class Textf extends JFrame 

{

      TreeBsp chefFrame;

      public Textf(TreeBsp chef) 

      {

            initComponents();

            chefFrame = chef;

      }

      .......

}

konstruieren im TreeBsp mit

... = new Textf(this);

dann in deinem actionPerformed()

chefFrame.testMethode(textField1.getText());

bigredeyes

p.s. lerne die grundlagen der objektorientierten programmierung!!!!

vielleicht solltest du mit einfacheren beispielen anfangen. ohne gui, einfach mal verschieden klassen bauen und diese "kommunizieren" lassen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

wenn du keine zeit hast....

dann lass es!

auch wenn es die brühmte ".... in 21 tagen" gibt, wird dort mehr versprochen als gehalten.

ich warte schon auf titel wie "brückenbauer in 21 tagen" und "gehirnchirurg in 21 tagen"

die leute hier machen 3 jahre ausbildung. wenn man es "mal schnell" lernen könnte wäre uns allen geholfen. dem ist aber nicht so.

hast du jemanden der dich unterstützt? lernst du es betrieblich oder studium oder zum spass?

lerne die basics:

0 OO basics: klasse, instanz, referenz,....

1 datentypen in java.

2 wie ist eine klasse aufgebaut?

3 was sind die modifier public, private, protected?

4 interfaces

5 vererbung

und eigentlich sollte man auch die basics von OO-analyse [use-cases], OO-design [uml] haben.

bigredeyes

OO = objektorientiert

p.s. key-word this:

die instanz der klasse in der du gerade steckst.

this ist in deinem fall ein objekt vom typ treebsp.

wenn du kein main hast, dann bastelt die vielleicht deine entwicklungsumgebung automatisch zum ausführen ein main dazu.

public static void main(String args....)

ist der einstiegspunkt zum ausführen einer klasse.

ich hoffe du kannst englisch:

Lesson: Language Basics (The Javaâ„¢ Tutorials > Learning the Java Language)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist die main so ok?

	
public static void main(String[] args)
{
TreeBsp myMainWindow = new TreeBsp();
myMainWindow.setVisible(true);
}
[/PHP]

das schönste main das ich seit langen gesehen habe ;).

Ich habe leider keine unterstützung.:(

doch, die leute aus dem forum! :)

bigredeyes

edit: hier ist der "beginner-start"

Trail: Learning the Java Language (The Javaâ„¢ Tutorials)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...