sunnyw86 Geschrieben 25. Januar 2007 Teilen Geschrieben 25. Januar 2007 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kingofbrain Geschrieben 25. Januar 2007 Teilen Geschrieben 25. Januar 2007 Servus, Du holst den Text mit JTextField#getText() und arbeitest dann das Tutorial von Sun durch: How to Use Trees (The Javaâ„¢ Tutorials > Creating a GUI with JFC/Swing > Using Swing Components) Schöne Grüße, Peter Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 25. Januar 2007 Teilen Geschrieben 25. Januar 2007 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sunnyw86 Geschrieben 25. Januar 2007 Autor Teilen Geschrieben 25. Januar 2007 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigredeyes Geschrieben 25. Januar 2007 Teilen Geschrieben 25. Januar 2007 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sunnyw86 Geschrieben 25. Januar 2007 Autor Teilen Geschrieben 25. Januar 2007 Tut mir leid. 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 25. Januar 2007 Teilen Geschrieben 25. Januar 2007 Und wie äußert sich "funktioniert nicht"? Ich vermute, daß das Fenster nicht angezeigt wird, da es erst sichtbar gesetzt werden muß (setVisible(true)). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sunnyw86 Geschrieben 25. Januar 2007 Autor Teilen Geschrieben 25. Januar 2007 Also wenn ich den Text ins TextField schreibe und dann den Button "Speichern" klicke soll ja im anderen Textfeld,was sich Hauptfenster befindet übernommen werden. Das tut es nicht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigredeyes Geschrieben 25. Januar 2007 Teilen Geschrieben 25. Januar 2007 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sunnyw86 Geschrieben 25. Januar 2007 Autor Teilen Geschrieben 25. Januar 2007 Ich danke dir wirklich sehr. Ja ich habe erst mit Java angefangen. Kannst du vieleicht eine gute Seite oder ein gutes Buch empfehlen? Leider hab ich nicht wirklich viel Zeit Java zu lernen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sunnyw86 Geschrieben 25. Januar 2007 Autor Teilen Geschrieben 25. Januar 2007 ... = new Textf(this); Kannst du mir bitte das näher erklären, warum this. 1) treebsp erstellen (ich denke du hast noch irgendwo ein main() in der ein new treebsp() erstellt wird). Nein habe ich nicht. Warum funktioniert es trotzdem? Nochmals vielen Dank. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigredeyes Geschrieben 25. Januar 2007 Teilen Geschrieben 25. Januar 2007 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) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sunnyw86 Geschrieben 25. Januar 2007 Autor Teilen Geschrieben 25. Januar 2007 Ist die main so ok? public static void main(String[] args) { TreeBsp myMainWindow = new TreeBsp(); myMainWindow.setVisible(true); } [/PHP] Ich habe leider keine unterstützung. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 25. Januar 2007 Teilen Geschrieben 25. Januar 2007 Jepp. Sieht gut aus. Ich frag' mich aber auch, wieso das klappt, wenn Du die nicht deifniert hast. Womit entwickelst Du denn? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigredeyes Geschrieben 25. Januar 2007 Teilen Geschrieben 25. Januar 2007 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) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sunnyw86 Geschrieben 25. Januar 2007 Autor Teilen Geschrieben 25. Januar 2007 Danke. Ich arbeite mit eclipse und JFormDesigner. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.