Speichern eines Applets (Speichern von Daten - Applikation)

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo,

also, habe jetzt ein kleines adressbuch geschrieben. Meine Frage ist, wie kann ich den Applet speicher? also bzw. dass was in den Textfeldern eingegeben wurde.
wäre toll wenn mir jemand helfen könnte.

hier mein code :

Code:
import java.awt.*;
import java.awt.event.TextEvent;
import java.awt.event.TextListener;
import java.applet.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

public class Label1 {
	

public static void main(String[]args){

	    
	    JFrame frame = new JFrame("Adressbuch");
	    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    
	    JTabbedPane tab = new JTabbedPane();
	    frame.add(tab,BorderLayout.CENTER);
	    
	    Label l1 = new Label("Vorname");
	    Label l2 = new Label("Nachname");
	    Label l3 = new Label("Wohnort");
	    Label l4 = new Label("Straße & Hausnummer");
	    Label l5 = new Label("PLZ");

	    Label l6 = new Label ("Telefonnummer");
	    Label l7 = new Label ("Handynummer");
	    Label l8 = new Label ("E - mail Adresse");
	    Label l9 = new Label ("ICQ - Nummer");

	    Label l10 = new Label ("Anmerkungen");
	    
	    TextField TextFeld = new TextField("..");
	    TextField TextFeld2 = new TextField ("..");
	    TextField TextFeld3 = new TextField ("..");
	    TextField TextFeld4 = new TextField ("..");
	    TextField TextFeld5 = new TextField("..");
	    TextField TextFeld6 = new TextField("..");
	    TextField TextFeld7 = new TextField("..");
	    TextField TextFeld8 = new TextField("..");
	    TextField TextFeld9 = new TextField("..");
	    TextField TextFeld10 = new TextField("..");
	    
	  
	    JPanel panel = new JPanel();
	     	     
	       panel.add(l1);
	       panel.add(TextFeld);
	       panel.add(l2);
	       panel.add(TextFeld2);
	       panel.add(l3);
	       panel.add(TextFeld3);
	       panel.add(l4);
	       panel.add(TextFeld4);
	       panel.add(l5);
	       panel.add(TextFeld5);
	       tab.add("Adresse",panel);
	    
	    JPanel panel1 = new JPanel();
	       panel1.add(l6);
	       panel1.add(TextFeld6);
	       panel1.add(l7);
	       panel1.add(TextFeld7);
	       panel1.add(l8);
	       panel1.add(TextFeld8);
	       panel1.add(l9);
	       panel1.add(TextFeld9);
	       tab.add("Erreichbar unter..", panel1);
	    
	    JPanel panel2 = new JPanel();
	    	panel2.add(l10);
	    	panel2.add(TextFeld10);
	    	tab.add("Anmerkungen", panel2);
	    	
	    frame.setVisible(true);
	    frame.setSize(400,400);
	    
	    
	    
}
}


btw, bin kompletter anfänger also nicht wundern.


Dieser Beitrag wurde von L-ectron-X am 04.02.2009 um 16:42 Uhr editiert.
-Titel angepasst
 
Erst mal müsste es ein Applet sein...
Dazu muss deine Klasse von Applet erben, und statt einer main()-Methode eine init()-Methode haben.
 
habe das jetzt mit init ()

und habe auch das mit : extends java.applet.Applet
bzw. extends Applet

allerdings öffnen sich jetzt 2 fenster, einmal mein adressbuch und einmal ein leeres fenster.

was soll ich machen?


Wo willst du denn speichern? Generell müsste dein Applet wohl signiert sein.
-> ehm ich dachte einfach auf der festplatte. und was meinst du mit signiert?
 
Sicher, dass du ein Applet (was im Browser läuft) möchtest, und keine Anwendung, die ganz normal auf dem Betriebssystem läuft?

Naja, ich wollte wissen, ob du auf dem Server, wo das Applet liegt, speichern willst (was hinfällig wird, wenn du sowieso kein Applet willst), ob du als Textdatei speichern willst, als XML, mit ner Datenbank, ...
 
ehm entschuldigung ich meinte natürlich ne ganz normale anwendung >.<
mein ziel ist es, dass ich so speichern kann, dass ich die datei einfach nur öffne un letzt endlich mein adressbuch aufgerufen wird, jedoch jetzt eben so wie ich es vorher ausgefüllt habe.
weiß nicht was sich dazu eignet..
 
außerdem böse: du mischst awt und swing, sei so gut und nimm _J_Textfield und _J_Label
 
außerdem böse: du mischst awt und swing, sei so gut und nimm _J_Textfield und _J_Label

-> erledigt 😳

also damit ich das richtig verstanden habe : ich kann irgendwie meine einstellung als eine .jar datei speichern?
 
Nein kannst du nicht. kA was Slater dir damit mitteilen wollte ???:L .

Google mal nach BufferedReader bzw. BufferedWriter. Dort findest du alles, was du brauchst.
 
ich liebe solche antworten. "google mal"

habe gegoogelt.seeehr lange. schon vorhin. jetzt auch mit BufferdWrite und BufferedReader.stell dir vor, habe nix brauchbares gefundn.

warum sollte ich denn in einem forum nachfragen wenn google mir passende antworten gibt ._.
 
das ist eine gute Frage. Evtl. weil du nicht weißt, nach was du Googeln musst?

Ich bin mal so nett:

Code:
BufferedWriter wuffy = new BufferedWriter(new FileWriter("test.txt"));
wuffy.write("Hallo Welt!");
wuffy.close();
BufferedReader buffy = new BufferedReader(new FileReader("test.txt"));
System.out.println(buffy.readLine());
buffy.close();
 
es tut mir ja leid aber ich habe echt keine ahnung was ich damit machen kann/soll.
wo genau soll ich das :

Code:
BufferedWriter wuffy = new BufferedWriter(new FileWriter("test.txt"));
wuffy.write("Hallo Welt!");
wuffy.close();
BufferedReader buffy = new BufferedReader(new FileReader("test.txt"));
System.out.println(buffy.readLine());
buffy.close();

einsetzen? bzw. an mein programm anpassen?
 
Ein BufferedWriter speichert einen Text in eine Datei. Das soll da rein, wo du Text speichen willst. Ein BufferedReader liest Text aus einer Datei, das soll da hin, wo du Text lesen willst.

Wie wäre es, wenn du in deinem Anfängerbuch mal ein bisschen was über IO liest?
 
wenn du mir jetzt noch sagen könntest was IO heißt, wäre ich glücklich 🙂
 
Glaub ich auch. Zuerst wird hier Applet mit Applikation durcheinander gebracht, das mit der Mischung von Swing- und AWT-Komponenten kann man noch verstehen...
Aber mir erschließt sich hier noch nicht, was jetzt wohin gespeichert werden soll.
 
nope, so wird das echt nichts.
ich will einfach nur, das wenn ich auf "Speichern" drücke ein dialog aufgerufen wird, in dem ich dann eben z.b. einen ordner auswählen kann, in dem eben meine veränderte datei neu gespeichert wird.
also : programm öffnen, was in textfelder schreiben, speichern drücken, dialog wird aufgerufen, ordner auswählen, speichern.
und wenn ich die gespeicherte datei aufrufe soll eben meine ursprüngliche datei jedoch mit beschrifteten textfeldern herauskommen.

habe meinen code jetzt mal ein bisschen verändert :
Code:
 import java.awt.*;
import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;

public class AdressbuchMitMenübar extends Frame implements ActionListener, WindowListener
{
  public static void main(String args[])
  {
     AdressbuchMitMenübar Fenster1 = new AdressbuchMitMenübar();
     Fenster1.setSize(240, 400);
     Fenster1.setLocation(250, 200);
     Fenster1.setTitle("Adressbuch");
     Fenster1.show();
      		
 		
         
 	    JTabbedPane tab = new JTabbedPane();
 	    Fenster1.add(tab,BorderLayout.CENTER);
 	    
 	    JLabel l1 = new JLabel("Vorname");
 	    JLabel l2 = new JLabel("Nachname");
 	    JLabel l3 = new JLabel("Wohnort");
 	    JLabel l4 = new JLabel("Straße");
 	    JLabel l11 = new JLabel ("HausNr.");
 	    JLabel l5 = new JLabel("PLZ");

 	    JLabel l6 = new JLabel ("Telefonnummer");
 	    JLabel l7 = new JLabel ("Handynummer");
 	    JLabel l8 = new JLabel ("E - mail Adresse");
 	    JLabel l9 = new JLabel ("ICQ - Nummer");

 	    JLabel l10 = new JLabel ("Anmerkungen");
 	    
 	    JTextField TextFeld = new JTextField("                                                                         ");
 	    JTextField TextFeld2 = new JTextField ("                                                                         ");
 	    JTextField TextFeld3 = new JTextField ("                                                                         ");
 	    JTextField TextFeld4 = new JTextField ("                                                                         ");
 	    JTextField TextFeld5 = new JTextField("                                                                         ");
 	    JTextField TextFeld6 = new JTextField("                                                                         ");
 	    JTextField TextFeld7 = new JTextField("                                                                         ");
 	    JTextField TextFeld8 = new JTextField("                                                                         ");
 	    JTextField TextFeld9 = new JTextField("                                                                         ");
 	    JTextField TextFeld10 = new JTextField("                                                                         ");
 	    JTextField TextFeld11 = new JTextField("                                                                        ");
 	    
 	    
 	    JPanel panel = new JPanel();
 	     	     
 	       panel.add(l1);
 	       panel.add(TextFeld);
 	       panel.add(l2);
 	       panel.add(TextFeld2);
 	       panel.add(l3);
 	       panel.add(TextFeld3);
 	       panel.add(l4);
 	       panel.add(TextFeld4);
 	       panel.add(l11);
 	       panel.add(TextFeld11);
 	       panel.add(l5);
 	       panel.add(TextFeld5);
 	       tab.add("Adresse",panel);
 	    
 	    JPanel panel1 = new JPanel();
 	       panel1.add(l6);
 	       panel1.add(TextFeld6);
 	       panel1.add(l7);
 	       panel1.add(TextFeld7);
 	       panel1.add(l8);
 	       panel1.add(TextFeld8);
 	       panel1.add(l9);
 	       panel1.add(TextFeld9);
 	       tab.add("Erreichbar unter..", panel1);
 	    
 	    JPanel panel2 = new JPanel();
 	    	panel2.add(l10);
 	    	panel2.add(TextFeld10);
 	    	tab.add("Anmerkungen", panel2);
 	    	
 	 
 	     
 	    
 }
   

  public AdressbuchMitMenübar()
  {
     MenuBar hauptMenue = new MenuBar();
     Menu menue1 = new Menu("Datei");
     Menu menue2 = new Menu("Bearbeiten");
     Menu menue3 = new Menu("Ansicht");
     Menu menue4 = new Menu("Hilfe");
     menue1.add("Laden");
     menue1.add("Speichern");
     menue1.add("Speichern unter");
     menue1.addSeparator();
     menue1.add("Beenden");
     menue4.add("Index");
     menue4.add("Über");
     hauptMenue.add(menue1);
     hauptMenue.add(menue2);
     hauptMenue.add(menue3);
     hauptMenue.setHelpMenu(menue4);
     setMenuBar(hauptMenue);
     menue1.addActionListener(this);
     addWindowListener(this);
   }

  public void actionPerformed(ActionEvent evt)
  {
     if (evt.getSource() instanceof MenuItem)
    {
       String menuAdd = evt.getActionCommand();
       if (menuAdd == "Beenden") System.exit(0);
     }
   }
  
  public void windowClosing(WindowEvent evt)
  {
     System.exit(0);
   }
  
  public void windowOpened(WindowEvent evt){}
  public void windowIconified(WindowEvent evt){}
  public void windowDeiconified(WindowEvent evt){}
  public void windowClosed(WindowEvent evt){}
  public void windowActivated(WindowEvent evt){}
  public void windowDeactivated(WindowEvent evt){}
}


Hoffe das jetzt einer versteht was ich meine
 
Wir verstehen was du meinst, aber ohne Eigeninitiative von dir wird das nicht. Geh mal Schritt für Schritt vor.

1.) Wie bekomme ich einen "Speichern"-Dialog
2.) Wie kann ich die Daten aus den Textfeldern auslesen
3.) Wie speichere ich diese
4.) Wie bekomme ich einen "Öffnen"-Dialog
5.) Wie kann ich eine Datei auslesen
6.) Wie bekomme ich die Daten zurück in die Textfelder

?
 
so,

habe herausgefunden wie man einen "Speichern" - Dialog aufruft.
meine erste frage wäre jetzt nur : wie und wo muss ich diesen einsetzen? oder muss ich das als neue Klasse machen?
 
Also zu deinem Code: Strings vergleicht man mit equals, nicht mit ==. Siehe http://www.java-blog-buch.de/0302-strings-vergleichen/ . Generell solltest du dir die Basics aneigenen, bevor du mit GUI-Programmierung beginnst.

Zu deiner Frage:

Du erweiterst deine actionPerformed-Methode um den Fall, falls der ActionCommand gleich zu "Speichern" ist. Falls dies der Fall ist, rufst du deinen Code für den Speichern-Dialog auf.
 
Strings vergleicht man mit equals, nicht mit ==
-> erledigt.

Generell solltest du dir die Basics aneigenen, bevor du mit GUI-Programmierung beginnst.
-> habe schon viel gelesen. unter anderem "java in 21 tagen". war fast komplett durch aber habe sogut wie nichts davon verstanden, obwohl ich immer alles sorgfältig gelesen und ausprobiert habe.

Du erweiterst deine actionPerformed-Methode um den Fall, falls der ActionCommand gleich zu "Speichern" ist

tut mir ja leid aber ich versteh's nicht.
 
Dann bist du evtl. zum Programmieren nicht geeignet. Zum Lernen von Java musst du ein Buch lesen (oder dir einen Privatlehrer engagieren).

Wenn du aus Büchern nicht lernen kannst und kein Geld für einen Privatlehrer bzw. generelle Verständnisprolbeme hast, dann wird das wohl nichts.

Brauchst du zwingend ein Programm, dann bezahl jemanden dafür, der es dir programmiert.

Sorry, klingt hart. Aber wenn du nicht mal die Basics nach lesen von mehreren Einsteigerbüchern verstehst, dann solltest du dir ernsthaft Gedanken machen, ob die Programmierung das Richtige für dich ist.
 
Angenommen es wäre wirklich ÜBERHAUPT nichts für mich, dann hätte ich doch wohl längst schon aufgehört oder nicht?
und dann hätte ich auch nicht so ein programm geschrieben >.<
ich will doch einfach nur ne lösung für mein problem und nicht irgendwelche langen reden ohne irgendeine lösung <.<
 
Hab ich versucht, aber das geht nicht, wenn du die Basics nicht kannst. Und das Forum ist garantiert nicht dafür da, dir die Basics beizubringen!
 
Gast hat gesagt.:
habe schon viel gelesen. unter anderem "java in 21 tagen". war fast komplett durch aber habe sogut wie nichts davon verstanden, obwohl ich immer alles sorgfältig gelesen und ausprobiert habe.

Java ist auch nichts, was man in 21 Tagen lernt, auch wenn der Titel des eher mittelmäßigen Buches dieses suggerieren mag.
Guck mal in Java ist auch eine Insel rein, da werden dir die Basic und noch viel mehr erklärt.

Oft hilft auch schon die Forumsuche.
Dialog zu Speichern öffnen kam in den vergangenen 2 Tagen schon 3 mal...
 
okay, da mir jetzt schon viele gesagt haben, dass "Java ist auch eine Insel" gut sei, denke ich ich werds mir bestellen.
Hoffe das ich wenn ich das durch habe wenigstens ne lösung zu meinem problem kenne. 😛
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben