Öffnen, Speichern von Dat. über DialogBoxen

pawlo

Mitglied
Hallo zusammen,

habe unlängst versucht mir einen einfachen Editor zum öffnen und speichern von Dateien zusammengestellt. Zur Hilfe habe ich Bücher und das Forum durchsucht und so den Quelltext geschr.
Leider komme ich aber nicht mehr weiter. Mein Edi öffnet zwar DialogBoxen zum Auswahl von Dat., die Dat selbst lassen sich nicht öffnen. Ausserdem wollte ich den einen Button von öffnen->save umändern.
Weisst jm. wie es weitergeht? Anbei mein Quellcode.

Danke, Gruß Pawel

package jpr20;


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.accessibility.Accessible;
import javax.swing.JComponent;
import javax.swing.JFileChooser;


public class Jpr20 extends JFrame implements ActionListener,Accessible
{
private JTextArea jta;
private JButton jb;

private JMenuBar menueleiste;
private JMenu ablageMenue;
private JMenuItem beendenMenueEintrag, save,open, saveas;

public FileDialog fl;

// public JFrame owner;

public Jpr20 ()
{
super ("JEditor");
JPanel mainpanel = new JPanel ();
mainpanel.setLayout (new BorderLayout ());
this.getContentPane ().add (mainpanel);

//jb = new JButton ("foobar");
//jb.addActionListener (this);
jta = new JTextArea ();
menueleiste = new JMenuBar();
ablageMenue = new JMenu("File");
beendenMenueEintrag = new JMenuItem("Beenden");
beendenMenueEintrag.addActionListener(this);
beendenMenueEintrag.setEnabled(true);

open = new JMenuItem("Open");
open.addActionListener(this);
open.setEnabled(true);

save = new JMenuItem("Save");
save.addActionListener(this);
save.setEnabled(true);

saveas = new JMenuItem("SaveAs");
saveas.addActionListener(this);
saveas.setEnabled(true);

ablageMenue.add(beendenMenueEintrag);
ablageMenue.add(open);
ablageMenue.add(save);
ablageMenue.add(saveas);
menueleiste.add(ablageMenue);


jta.setBounds (20, 10, 560, 450);
jta.setLineWrap (true);
jta.setWrapStyleWord (true);
JScrollPane j=new JScrollPane (jta);

j.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
mainpanel.add (j, BorderLayout.CENTER);
mainpanel.add (menueleiste, BorderLayout.NORTH);
setSize (400, 400);
setLocation (100, 100);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setVisible (true);



}



public void actionPerformed (ActionEvent e)
{
String cmd = e.getActionCommand ();
if (cmd.equals ("Open"))
{

new panelZwei();
// new JFileChooser();
//new JFileCh();
}

if(cmd.equals("Beenden"))
{
dispose();
System.exit(0);
}

if(cmd.equals("SaveAs"))
{
//new panelZwei();
new JFileCh();


}
}

public class panelZwei extends JFrame implements ActionListener,Accessible
{
public String filename;
panelZwei()
{
FileDialog filedia = new FileDialog(this, "Open"); //this=MainFrame
filedia.setFile("*.txt");
filedia.show();
filename = filedia.getFile();
// int auswahl = filedia.showOpenDialog();
}
//if (filename != null) {
// Datei eroeffnen und so weiter
// }
//filedia.dispose();

public void actionPerformed (ActionEvent e)
{

}
}

public class JFileCh extends JComponent implements Accessible
{
public JFileCh()
{

JFileChooser chooser = new JFileChooser();


int returnVal = chooser.showOpenDialog(this);
// FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images", "jpg", "gif");
// chooser.setFileFilter(filter);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getName());


}

}

}

public static void main (String args[])
{
new Jpr20();

}
}
 

GUI-Programmer

Top Contributor
Schreibe deinen Java™ Quelltext bitte in
Java:
[/B]-Tags[/SIZE][/COLOR], sonst wird sich hier wohl kaum jemand die Mühe machen ihn durchzulesen.
 

pawlo

Mitglied
Java:
package jpr20;


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.accessibility.Accessible;
import javax.swing.JComponent;
import javax.swing.JFileChooser;


  public class Jpr20 extends JFrame implements ActionListener,Accessible
{
	private JTextArea jta;
	private JButton jb;
        
        private   JMenuBar menueleiste;
        private  JMenu ablageMenue;
        private  JMenuItem beendenMenueEintrag, save,open, saveas;
        
        public   FileDialog fl;
      
       // public JFrame owner;
       
	public Jpr20 ()
	{
		super ("JEditor");
		JPanel mainpanel = new JPanel ();
		mainpanel.setLayout (new BorderLayout ());
		this.getContentPane ().add (mainpanel);

		//jb = new JButton ("foobar");
		//jb.addActionListener (this);
		        jta = new JTextArea ();
		menueleiste = new JMenuBar();
             ablageMenue = new JMenu("File");
            beendenMenueEintrag = new JMenuItem("Beenden");
            beendenMenueEintrag.addActionListener(this);
            beendenMenueEintrag.setEnabled(true);
              
                open = new JMenuItem("Open");
                open.addActionListener(this);
                open.setEnabled(true);
                 
                save = new JMenuItem("Save");
                save.addActionListener(this);
                save.setEnabled(true);
            
                saveas = new JMenuItem("SaveAs");
                saveas.addActionListener(this);
                saveas.setEnabled(true);
                
                ablageMenue.add(beendenMenueEintrag);
                ablageMenue.add(open);
                ablageMenue.add(save);
                ablageMenue.add(saveas);
                menueleiste.add(ablageMenue);
            
            
		jta.setBounds (20, 10, 560, 450);
		jta.setLineWrap (true);
		jta.setWrapStyleWord (true);
		JScrollPane j=new JScrollPane (jta);
              
		j.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
                mainpanel.add (j, BorderLayout.CENTER);
	        mainpanel.add (menueleiste, BorderLayout.NORTH);
                setSize (400, 400);
		setLocation (100, 100);
		setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
                setVisible (true);    
                
                
                              
	}
        
        

	public void actionPerformed (ActionEvent e)
	{
		String cmd = e.getActionCommand ();
		if (cmd.equals ("Open"))
		{
			
                  new panelZwei();
                  //  new JFileChooser();
                   //new JFileCh();
		}
		
                if(cmd.equals("Beenden"))
                {
                     dispose();
                     System.exit(0);
                }
               
                if(cmd.equals("SaveAs"))
                {
                  //new panelZwei();
                  new JFileCh();
                    
                         
                }          
                    	}
       
       public class panelZwei extends JFrame implements ActionListener,Accessible
        {
           public String filename;
            panelZwei()
            {
         FileDialog filedia = new FileDialog(this, "Open"); //this=MainFrame
         filedia.setFile("*.txt");
         filedia.show();
         filename = filedia.getFile();
        // int auswahl = filedia.showOpenDialog();
            }
        //if (filename != null) {
        // Datei eroeffnen und so weiter
        // }
       //filedia.dispose();
            
            public void actionPerformed (ActionEvent e)
	      {               
     
              }        
}
      
         public class JFileCh extends JComponent implements Accessible
        {
         public  JFileCh()
         {
            
           JFileChooser chooser = new JFileChooser();
           
   
          int returnVal = chooser.showOpenDialog(this);
      //   FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images", "jpg", "gif");
       // chooser.setFileFilter(filter);
          if(returnVal == JFileChooser.APPROVE_OPTION) {
          System.out.println("You chose to open this file: " +
          chooser.getSelectedFile().getName());
         
        
         }
        
         }
             
        }
     
	public static void main (String args[])
	{
		new Jpr20();
                     
        }
  }
 
N

nillehammer

Gast
Pflicht:
- File lesen: Mit dem ausgewählten Namen als Parameter einen FileInputStream erzeugen und mit dessen read-Methoden arbeiten.
- File schreiben: Mit dem ausgewählten Namen einen FileOutputStream erzeugen und mit dessen write-Methoden dort hineinscheiben.

Kür:
- Den Zugriff auf das File mit BuffereInputStream/BufferedOutputStream puffern.
- Wenn es sich um Textbasierte Dateien handelt, statt der Streams die entspr. Reader benutzen.

Ich hoffe, dass Du das mit "öffnen" meintest.
 
N

nillehammer

Gast
Java:
final File selectedFile = chooser.getSelectedFile();

	// Zum Einlesen binärer Dateien (kann man auch für Textdateien
	// benutzen, aber mit Readern hat man ein paar mehr bequeme
	// Methoden).
	final BufferedInputStream buffIn = new BufferedInputStream(
		new FileInputStream(selectedFile));
		
	// Nur zum Einlesen textbasierter Dateien (binäre Dateien nur mit Streams)
	final BufferedReader buffReader = new BufferedReader(new FileReader(selectedFile));
		
	// Zum Schreiben in binäre Dateien (kann man auch für Textdateien
	// benutzen, aber mit Writern hat man ein paar mehr bequeme
	// Methoden).
	final BufferedOutputStream buffOut = new BufferedOutputStream(
		new FileOutputStream(selectedFile));
		
	// Nur zum Schreiben textbasierter Dateien (binäre Dateien nur mit Streams)
	final BufferedWriter buffWriter = new BufferedWriter(new FileWriter(selectedFile));
Die Exceptions musst Du noch behandeln. Bspw. fangen und dem User die Message als Fehler anzeigen.
 
Zuletzt bearbeitet von einem Moderator:

pawlo

Mitglied
jetzt ist soweit alles ok bis auf

Java:
 new FileInputStream(selectedFile));

muss ich einen try/catch Block schreiben?
 

pawlo

Mitglied
ja, habe es versucht, es läuft soweit alles allerdings werden Dat. nicht geöffnet.
Fehlt noch etwas im Quelltext?

Java:
 public void inStream() throws Exception
            {
           JFileChooser chooser = new JFileChooser();
           final File selectedFile = chooser.getSelectedFile(); 
         //  final BufferedInputStream buffIn = new BufferedInputStream(
        //   new FileInputStream(selectedFile));
            final BufferedReader buffReader = new BufferedReader(new FileReader(selectedFile));
           /*  int returnVal = chooser.showOpenDialog(this);
             if(returnVal == JFileChooser.APPROVE_OPTION) {
            System.out.println("You chose to open this file: " +
            chooser.getSelectedFile().getName());
            }*/
            }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S AWT Speichern von Listkomponenten und Öffnen derer AWT, Swing, JavaFX & SWT 10
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
P JApplet Browser Tab Öffnen AWT, Swing, JavaFX & SWT 5
B Nach dem Öffnen des Dialogs eine Aktion ausführen. AWT, Swing, JavaFX & SWT 6
H Öffnen einer Sourcedatei? AWT, Swing, JavaFX & SWT 11
X Öffnen Schließen Fenster AWT, Swing, JavaFX & SWT 4
T JFileChooser - "Öffnen-Button" aktivieren/deaktivieren möglich??? AWT, Swing, JavaFX & SWT 2
C Swing Problem beim 2. Öffnen eines JFrames AWT, Swing, JavaFX & SWT 9
L Filechooser File Öffnen AWT, Swing, JavaFX & SWT 4
Q Neuer Thread zum Öffnen AWT, Swing, JavaFX & SWT 2
G JComboBox soll beim Öffnen eine andere JComboBox öffnen AWT, Swing, JavaFX & SWT 3
I Öffnen von anderen Programmen bei Betätigen eines Buttons AWT, Swing, JavaFX & SWT 19
T Öffnen von SWT-Dialogboxen durch HTML-Link in HTML-Code AWT, Swing, JavaFX & SWT 4
A KeyListener funktioniert nicht beim Öffnen von neuem Frame. AWT, Swing, JavaFX & SWT 2
D JTable nach Öffnen-Dialog umbaun AWT, Swing, JavaFX & SWT 5
A erneutes Öffnen jInternalFrame: illegal component position AWT, Swing, JavaFX & SWT 4
M Image-Preview im Öffnen-Dialog: Performanceprobleme AWT, Swing, JavaFX & SWT 2
X Java Frame Öffnen AWT, Swing, JavaFX & SWT 4
S Öffnen eines JDialog über JMenuItem / Fenster zu viel. AWT, Swing, JavaFX & SWT 2
J Öffnen und Schließen eines Fensters (mit Synchronisierung) AWT, Swing, JavaFX & SWT 3
B Probleme mit Öffnen einer GUI Oberfläche AWT, Swing, JavaFX & SWT 2
F Fensternamen nach Öffnen änderbar? AWT, Swing, JavaFX & SWT 4
P JTree Knoten Öffnen - PER Programm AWT, Swing, JavaFX & SWT 5
D JInternalFrame beim Öffnen nicht aktiv! AWT, Swing, JavaFX & SWT 5
M LookAndFeel? Erst beim 2.Mal Öffnen eines Menüs? AWT, Swing, JavaFX & SWT 3
J Öffnen-Dialog AWT, Swing, JavaFX & SWT 4
G Aktion beim Öffnen und Schliessen eines JInternalFrames AWT, Swing, JavaFX & SWT 4
T Das Windows Fenster "Öffnen" mit Java darstellen AWT, Swing, JavaFX & SWT 9
S Öffnen Dialog mit Swing AWT, Swing, JavaFX & SWT 2
J Eingaben aus Textfield & ComboBox speichern und in ComboBox wieder ausgeben AWT, Swing, JavaFX & SWT 3
officialmaxl JavaFX Textfield getTextfield() in String speichern AWT, Swing, JavaFX & SWT 1
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
B Swing Sudoku: Laden / Speichern von Zahlen aus/in mehrere JTextFields aus/in eine(r) Textdatei AWT, Swing, JavaFX & SWT 9
J Warum kann ich die Spaltennummer in der Konsole anzeigen, diese aber nicht speichern ? AWT, Swing, JavaFX & SWT 6
F Output Stream / File Dateien / Speichern AWT, Swing, JavaFX & SWT 13
D String als Textdatei in ausgewähltem Speicherplatz speichern AWT, Swing, JavaFX & SWT 32
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
S URLS speichern von Internetseiten AWT, Swing, JavaFX & SWT 3
S Bild neu skalieren - Bild in Bild speichern? AWT, Swing, JavaFX & SWT 6
P Adressbuch Werte speichern AWT, Swing, JavaFX & SWT 21
G Eingabe in JTextField in Array speichern und in JList ausgeben AWT, Swing, JavaFX & SWT 7
G JTextField Eingabe in DB speichern AWT, Swing, JavaFX & SWT 68
B TableView als PDF speichern AWT, Swing, JavaFX & SWT 8
cool_brivk24 libGDX Welt speichern AWT, Swing, JavaFX & SWT 0
R Scene speichern AWT, Swing, JavaFX & SWT 7
D Inhalt von JTextField in MySQL speichern. Wie ? AWT, Swing, JavaFX & SWT 1
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
S Swing jScrollPane - pro Eintrag der Liste, die jCheckBoxes Speichern die in dem Eintrag aktiviert wurden AWT, Swing, JavaFX & SWT 2
A Swing Wie Daten in der Form speichern? Array oder ArrayList AWT, Swing, JavaFX & SWT 2
I JavaFX formatierter Text in PDF speichern AWT, Swing, JavaFX & SWT 4
GenerationLost JavaFX FileChooser speichern ohne Zieldatei? AWT, Swing, JavaFX & SWT 12
A Swing Gemaltes Bild über saveDialog speichern unter AWT, Swing, JavaFX & SWT 15
S AWT Daten über TextField und Button in array speichern AWT, Swing, JavaFX & SWT 5
U Eingabe von TextField in variable speichern AWT, Swing, JavaFX & SWT 2
M Kamerabilder in ein Ordner speichern AWT, Swing, JavaFX & SWT 12
F Gezeichnetes als bild speichern AWT, Swing, JavaFX & SWT 4
I JavaFX Speichern der eingefügten Einträge beim Neustart des Programms AWT, Swing, JavaFX & SWT 2
I Variabeln speichern in Desktop Anwendung AWT, Swing, JavaFX & SWT 2
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
S JavaFX Fenstergrösse automatisch Speichern und Laden AWT, Swing, JavaFX & SWT 4
J Swing Fenstereinstellungen speichern AWT, Swing, JavaFX & SWT 2
M Combo Box auswahl in eine Datenbank speichern AWT, Swing, JavaFX & SWT 1
M ausgewählte Inhalt von ListItem inn ComboBox in der Tabelle speichern AWT, Swing, JavaFX & SWT 0
M Bild Beschreibung mit ImageIO speichern AWT, Swing, JavaFX & SWT 1
C Image laden und Speichern - Image wird auf JPanel nicht angezeigt AWT, Swing, JavaFX & SWT 4
J Swing JTable speichern AWT, Swing, JavaFX & SWT 2
C GUI öfters durchlaufen und hinterher Bild speichern AWT, Swing, JavaFX & SWT 1
S Panelzeichnung speichern AWT, Swing, JavaFX & SWT 2
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
M Bild aus JLabel resizen und speichern AWT, Swing, JavaFX & SWT 0
A Swing Malprogramm Bild speichern? AWT, Swing, JavaFX & SWT 9
G Subimage von BufferedImage speichern AWT, Swing, JavaFX & SWT 4
Y JavaFX Bild speichern und Pfad dazu abspeichern AWT, Swing, JavaFX & SWT 2
D JPanel Graphic2D als BufferedImage Speichern AWT, Swing, JavaFX & SWT 5
A JFileChooser Datei speichern AWT, Swing, JavaFX & SWT 4
B Bildverlust bei Speichern in .jar-Archiv AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Bildteile in ein anderes Bild speichern AWT, Swing, JavaFX & SWT 12
B Datenübergabe zwischen Tabs und Daten speichern AWT, Swing, JavaFX & SWT 2
J JFileChooser - Datei speichern AWT, Swing, JavaFX & SWT 7
J JTree speichern AWT, Swing, JavaFX & SWT 4
kodela Teil eines Panels als Graphik speichern AWT, Swing, JavaFX & SWT 3
T Modell als XML Speichern / Laden AWT, Swing, JavaFX & SWT 9
P TextField beim klicken von JButton speichern AWT, Swing, JavaFX & SWT 17
B Zustand eines GUI speichern AWT, Swing, JavaFX & SWT 8
I Dialog zum Speichern? AWT, Swing, JavaFX & SWT 16
M JTable Drucken NullpointerException +JTable speichern AWT, Swing, JavaFX & SWT 6
J Swing JTable-Daten Speichern und bei zeilen-änderung beibehalten. AWT, Swing, JavaFX & SWT 6
M Datei Speichern unter Dialog - SWT AWT, Swing, JavaFX & SWT 3
T SWT:Datei speichern / öffnen AWT, Swing, JavaFX & SWT 6
T speichern funktioniert,aber öffnen nicht AWT, Swing, JavaFX & SWT 2
W Grafik von JFrame korrekt speichern AWT, Swing, JavaFX & SWT 7
M Position eines JLabels speichern? AWT, Swing, JavaFX & SWT 3
P nicht sichtbares JPanel / JFrame als Image speichern AWT, Swing, JavaFX & SWT 3
A BufferedImage nach dem Speichern immer schwarz AWT, Swing, JavaFX & SWT 8
J Speichern, Event, Hintergrund getAppletContext AWT, Swing, JavaFX & SWT 2
S JTable - Sortierung beibhalten / Speichern. AWT, Swing, JavaFX & SWT 3
C Checkbox-zustände in einem JFrame speichern AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben