# Editor Lade Problem



## gote (8. Aug 2006)

Hallo, ich habe schon gegooglet, in den FAQs geschaut und gesicht, allerdiungs nichts gefunden. Ich habe einen Editor der eine Datei laden soll, allerdings lädt er sie nur halb oder nicht. Den Editor gibts mit dem Quellcode unter http://vokamus.de/downloads/Editor.jar
Ich lade in org.Buttons.VocMenubar (Über die Namen lässt sich streiten^^). Hoffe auf Antwort


----------



## André Uhres (9. Aug 2006)

```
for (String str = in.readLine(); str != null; str = in.readLine())
                        eingabe.append(str + "\n");
```


----------



## gote (9. Aug 2006)

danke ;-)


----------



## gote (9. Aug 2006)

Ok, danke. wie kann ich das machen das wenn jemand was in der textarea was eingibt sich der wert einer boolean variable auf false setzt? Ich würde das mit einem FocusListener machen, allerdings weiß ich nicht genau wie das geht. AUßerdem, wie funktioniert der WindowListener?

danke im voraus felix


----------



## André Uhres (9. Aug 2006)

Der DocumentListener ruft die Methode insertUpdate auf wenn man Text hinzufügt
und removeUpdate wenn man Text entfernt:

```
textArea.getDocument().addDocumentListener(new DocumentListener() {
            public void changedUpdate(DocumentEvent e) {
            }
            public void insertUpdate(DocumentEvent e) {
            }
            public void removeUpdate(DocumentEvent e) {
            }
        });
```
Der WindowListener ist für Container gedacht, wie JFrame oder JDialog. 
Die Methode windowClosing wird z.B. aufgerufen wenn der Frame beendet wird, 
dann kann man noch abschliessende Funktionen ausführen.

```
addWindowListener(new WindowListener() {
            public void windowActivated(WindowEvent e) {
            }
            public void windowClosed(WindowEvent e) {
            }
            public void windowClosing(WindowEvent e) {
            }
            public void windowDeactivated(WindowEvent e) {
            }
            public void windowDeiconified(WindowEvent e) {
            }
            public void windowIconified(WindowEvent e) {
            }
            public void windowOpened(WindowEvent e) {
            }
        });
```


----------



## gote (10. Aug 2006)

```
package org.main;

import org.buttons.*;
import org.dialogs.*;
import lib.frame.*;
import lib.field.*;
import lib.size.*;
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class MainClass extends VisibleExitOnCloseFrame {
	
	private VocMenubar menuebar;
	private VocToolbar toolbar;
	public static Textfield pane;
	private JScrollPane scroll;
	public static MainClass f;
	
	public MainClass(String title, Size size, Size location) {
		super(title, size, location);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		f = new MainClass("Vocamus Power PHP - noname.htm", new Size(800,600), new Size(20,30));
        f.addWindowListener(new WindowListener() { 
            public void windowActivated(WindowEvent e) { 
            } 
            public void windowClosed(WindowEvent e) { 
            	if(!VocMenubar.saved) {
            		int i = JOptionPane.showConfirmDialog(null, "Nochmal speichern?");
            		if(i == 0) {
            			System.out.println("Gespeichert");
            		}
            		else {
            			System.exit(0);
            		}
            	}
            } 
            public void windowClosing(WindowEvent e) { 
            } 
            public void windowDeactivated(WindowEvent e) { 
            } 
            public void windowDeiconified(WindowEvent e) { 
            } 
            public void windowIconified(WindowEvent e) { 
            } 
            public void windowOpened(WindowEvent e) { 
            } 
        });
	}
	
	protected void makeButtons() {
		mainPanel = new JPanel(new BorderLayout());
		pane = new Textfield(100,400);
		scroll = new JScrollPane();
		scroll.getViewport().add(pane);
		toolbar = new VocToolbar();
		menuebar = new VocMenubar();
	}
	
	protected void arrangeButtons() {
		setJMenuBar(menuebar);
		mainPanel.add("North",toolbar);
		mainPanel.add("Center", scroll);
		add(mainPanel);
	}

}
```

Das klappt nicht so ganz...


----------



## Leroy42 (10. Aug 2006)

*Editor Lade Problem*

Ist das jetzt ein einfacher Schreib-/Flüchtigkeitsfehler?

Auswirkungen der neuen Rechtschreibung?

Smalltalk Syntax? (_Hey Editor, lade mal das Problem_).

Fragen über Fragen..  :shock:


----------



## André Uhres (11. Aug 2006)

André Uhres hat gesagt.:
			
		

> ..Die Methode windowClosing wird z.B. aufgerufen wenn der Frame beendet wird..


Bei windowClosed ist's ja schon zu spät!


----------



## gote (11. Aug 2006)

ok, und wie kann ich ihm sagen, dass er bei abbrechen nix machen soll? und noch paar fragen^^, sry weils soviel ist:
wie kann ich anschließend das look and feel ändern? wie kann ich funktionen wie rückgängig, wiederholen, kopieren, auschneiden, einfügen und drucken machen? hier nochmal der code von meiner mainclass und meinem menü:


```
package org.main;

import org.buttons.*;
import org.dialogs.*;
import lib.frame.*;
import lib.field.*;
import lib.size.*;
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class MainClass extends VisibleExitOnCloseFrame {
	
	private static VocMenubar menuebar;
	private VocToolbar toolbar;
	public static Textfield pane;
	private JScrollPane scroll;
	public static MainClass f;
	
	public MainClass(String title, Size size, Size location) {
		super(title, size, location);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		f = new MainClass("Vocamus Power PHP - noname.htm", new Size(800,600), new Size(20,30));
        f.addWindowListener(new WindowListener() { 
            public void windowActivated(WindowEvent e) { 
            } 
            public void windowClosed(WindowEvent e) { 
            } 
            public void windowClosing(WindowEvent e) { 
            	if(!VocMenubar.saved) {
            		int i = JOptionPane.showConfirmDialog(null, "Nochmal speichern?");
            		if(i == 0)
            			menuebar.saveFileAs();
            		else if(i == 1) {
            			System.exit(0);
            		}
            		else {
            			
            		}
            	}
            } 
            public void windowDeactivated(WindowEvent e) { 
            } 
            public void windowDeiconified(WindowEvent e) { 
            } 
            public void windowIconified(WindowEvent e) { 
            } 
            public void windowOpened(WindowEvent e) { 
            } 
        });
	}
	
	protected void makeButtons() {
		mainPanel = new JPanel(new BorderLayout());
		pane = new Textfield(100,400);
		scroll = new JScrollPane();
		scroll.getViewport().add(pane);
		toolbar = new VocToolbar();
		menuebar = new VocMenubar();
	}
	
	protected void arrangeButtons() {
		setJMenuBar(menuebar);
		mainPanel.add("North",toolbar);
		mainPanel.add("Center", scroll);
		add(mainPanel);
	}

}
```


```
package org.buttons;

import org.main.*;
import java.awt.*;
import javax.swing.*;

import java.awt.event.*;
import java.io.*;
import javax.swing.filechooser.FileFilter;

public class VocMenubar extends JMenuBar implements ActionListener {
	
	public static boolean saved = true;
	private File savefile;
	private JMenuItem item[] = new JMenuItem[20];
	private int i = 0;
	private String[] fertig;
	
	private JMenu datei;
	private JMenuItem neu;
	private JMenuItem speichern;
	private JMenuItem speichernals;
	private JMenuItem laden;
	private JMenuItem drucken;
	private JMenuItem beenden;
	
	private JMenu bearbeiten;
	private JMenuItem rückgängig;
	private JMenuItem vorwärts;
	private JMenuItem ausschneiden;
	private JMenuItem kopieren;
	private JMenuItem einfügen;
	private JMenuItem zeile;
	private JMenuItem suchen;
	private JMenuItem ersetzen;
	
	private JMenu befehle;
	private JMenu vordefinierte;
	private JMenu eigene;
	private JMenuItem verbindung;
	private JMenuItem datenbank;
	private JMenuItem abfragen;
	private JMenuItem insert;
	private JMenuItem ändern;
	private JMenuItem löschen;
	private JMenuItem vschließen;
	private JMenuItem bhinzufügen, blöschen;
	
	private JMenu einstellungen;
	private JMenuItem schrift;
	private JMenu look;
	private JMenuItem metal, motif, windows;
	
	public VocMenubar() {
		super();
		
		datei = new JMenu("Datei");
		neu = new JMenuItem("Neu");
		laden = new JMenuItem("Laden...");
		speichern = new JMenuItem("Speichern");
		speichernals = new JMenuItem("Speichern als...");
		drucken = new JMenuItem("Drucken");
		beenden = new JMenuItem("Beenden");
		datei.add(neu);
		datei.add(laden);
		datei.add(speichern);
		datei.add(speichernals);
		datei.add(drucken);
		datei.add(beenden);
		add(datei);
		
		bearbeiten = new JMenu("Bearbeiten");
		rückgängig = new JMenuItem("Rückgängig");
		vorwärts = new JMenuItem("Wiederholen");
		ausschneiden = new JMenuItem("Ausschneiden");
		kopieren = new JMenuItem("Kopieren");
		einfügen = new JMenuItem("Einfügen");
		zeile = new JMenuItem("Zu Zeile springen");
		suchen = new JMenuItem("String suchen");
		ersetzen = new JMenuItem("String ersetzen");
		bearbeiten.add(rückgängig);
		bearbeiten.add(vorwärts);
		bearbeiten.add(ausschneiden);
		bearbeiten.add(kopieren);
		bearbeiten.add(einfügen);
		bearbeiten.add(zeile);
		bearbeiten.add(suchen);
		bearbeiten.add(ersetzen);
		add(bearbeiten);
		
		befehle = new JMenu("Befehle");
		vordefinierte = new JMenu("Vordefinierte...");
		eigene = new JMenu("Eigene...");
		verbindung = new JMenuItem("MySQL Verbindung aufbauen");
		datenbank = new JMenuItem("Datenbank auswählen");
		abfragen = new JMenuItem("Abfrage");
		insert = new JMenuItem("Einfügen");
		ändern = new JMenuItem("Ändern");
		löschen = new JMenuItem("Löschen");
		vschließen = new JMenuItem("Verbindung schließen");
		bhinzufügen = new JMenuItem("Befehl hinzufügen");
		blöschen = new JMenuItem("Befehl löschen");
		vordefinierte.add(verbindung);
		vordefinierte.add(datenbank);
		vordefinierte.add(abfragen);
		vordefinierte.add(insert);
		vordefinierte.add(ändern);
		vordefinierte.add(löschen);
		vordefinierte.add(vschließen);
		eigene.add(bhinzufügen);
		eigene.add(blöschen);
		befehle.add(vordefinierte);
		befehle.add(eigene);
		add(befehle);
		
		einstellungen = new JMenu("Einstellungen");
		look = new JMenu("Look&Feel");
		windows = new JMenuItem("Windows");
		metal = new JMenuItem("Metal");
		motif = new JMenuItem("Motif");
		look.add(metal);
		look.add(windows);
		look.add(motif);
		schrift = new JMenuItem("Schrift wählen");
		einstellungen .add(schrift);
		einstellungen.add(look);
		add(einstellungen);
		
		neu.addActionListener(this);
		laden.addActionListener(this);
		speichern.addActionListener(this);
		speichernals.addActionListener(this);
		drucken.addActionListener(this);
		beenden.addActionListener(this);
		
		verbindung.addActionListener(this);
		datenbank.addActionListener(this);
		abfragen.addActionListener(this);
		insert.addActionListener(this);
		ändern.addActionListener(this);
		löschen.addActionListener(this);
		vschließen.addActionListener(this);
		
		bhinzufügen.addActionListener(this);
		
		metal.addActionListener(this);
		windows.addActionListener(this);
		motif.addActionListener(this);
		
		schrift.addActionListener(this);
		
		
		readOutFile();
		
		if(fertig != null) {
			try {
				createOrder();
				if(fertig[57] == null) {
					if(fertig[54] == null) {
						if(fertig[51] == null) {
							if(fertig[48] == null) {
								if(fertig[45] == null) {
									if(fertig[42] == null) {
										if(fertig[39] == null) {
											if(fertig[36] == null) {
												if(fertig[33] == null) {
													if(fertig[30] == null) {
														if(fertig[27] == null) {
															if(fertig[24] == null) {
																if(fertig[21] == null) {
																	if(fertig[18] == null) {
																		if(fertig[15] == null) {
																			if(fertig[12] == null) {
																				if(fertig[9] == null) {
																					if(fertig[6] == null) {
																						if(fertig[3] == null) {
																							i = 0;
																						}
																						i = 1;
																					}
																					i = 2;
																				}
																				i = 3;
																			}
																			i = 4;
																		}
																		i = 5;
																	}
																	i = 6;
																}
																i = 7;
															}
															i = 8;
														}
														i = 9;
													}
													i = 10;
												}
												i = 11;
											}
											i = 12;
										}
										i = 13;
									}
									i = 14;
								}
								i = 15;
							}
							i = 16;
						}
						i = 17;
					}
					i = 18;
				}
				i = 19;
			}
			catch(ArrayIndexOutOfBoundsException ex) {}
		}
	}
	
	public void actionPerformed(ActionEvent e) {
		
		if(e.getSource().equals(verbindung))
			MainClass.pane.append("$connection = mysql_connect($host, $user, $password);" + "\n");
		
		else if(e.getSource().equals(datenbank))
			MainClass.pane.append("mysql_select_db($databasename);" + "\n");
		
		else if(e.getSource().equals(abfragen)) {
			MainClass.pane.append("$get = \"SELECT FROM tablename WHERE cloumn1 = '$value1'\";" + "\n");
			MainClass.pane.append("$finish = mysql_query($get);" + "\n");
			MainClass.pane.append("while($row = mysql_fetch_object($get))" + "\n");
			MainClass.pane.append("{" + "\n");
			MainClass.pane.append("}" + "\n");
		}
		
		else if(e.getSource().equals(insert)) {
			MainClass.pane.append("$insert = \"INSERT INTO table" + "\n");
			MainClass.pane.append("(column1, column2, column3)" + "\n");
			MainClass.pane.append("VALUES" + "\n");
			MainClass.pane.append("('value1', 'value2', 'value3')\";" + "\n");
			MainClass.pane.append("mysql_query($insert);" + "\n");
		}
		
		else if(e.getSource().equals(ändern)) {
			MainClass.pane.append("$aendern = \"UPDATE table Set" + "\n");
			MainClass.pane.append("column1 = 'value1'" + "\n");
			MainClass.pane.append("WHERE column2 = 'value2'\";" + "\n");
			MainClass.pane.append("mysql_query($change);" + "\n");
		}
		
		else if(e.getSource().equals(löschen)) {
			MainClass.pane.append("$delete = \"DELETE FROM table" + "\n");
			MainClass.pane.append("WHERE column1 = 'value1'\";" + "\n");
			MainClass.pane.append("mysql_query($delete);" + "\n");
		}
		
		else if(e.getSource().equals(vschließen)) {
			MainClass.pane.append("mysql_close($connection);" + "\n");
		}
		
		else if(e.getSource().equals(bhinzufügen)) {
			if(i <= 19) {
				String mtext;
				PrintStream p;
				FileReader y;
				BufferedReader in;
				StringBuffer eingabe;
			      try {
				      y = new FileReader("../conf/orders.ord");
				      in = new BufferedReader(y);
				      eingabe = new StringBuffer();
			          for (String str = in.readLine(); str != null; str = in.readLine()) 
			          eingabe.append(str + "\n");
				      in.close();
		    		  mtext = JOptionPane.showInputDialog(null, "Name des Befehls:");
		    		  String s2 = JOptionPane.showInputDialog(null, "Text des Befehls:");
					  addMenuItem(mtext);
		    		  p = new PrintStream("../conf/orders.ord");
		    		  p.append(eingabe);
		    		  p.append(Integer.toString(i) + "\n");
		    		  p.append(mtext);
		    		  p.append("\n");
		    		  p.append(s2);
		    		  p.append("\n");
		    		  p.close();
				      }
				      catch(FileNotFoundException ex) {
				    	  try {
				    		  mtext = JOptionPane.showInputDialog(null, "Name des Befehls:");
				    		  String s2 = JOptionPane.showInputDialog(null, "Text des Befehls:");
							  addMenuItem(mtext);
				    		  p = new PrintStream("../conf/orders.ord");
				    		  p.append(Integer.toString(i) + "\n");
				    		  p.append(mtext);
				    		  p.append("\n");
				    		  p.append(s2);
				    		  p.append("\n");
				    		  p.close();
				    	  }
				    	  catch(FileNotFoundException ex2) {}
				      }
				      catch(IOException ex) {
				    	  System.err.println("Konnte die Datei nicht auslesen.");
				      }
			}
				
				else if(i == 20) {
					String mtext;
					PrintStream p;
					FileReader y;
					BufferedReader in;
					StringBuffer eingabe;
				      try {
					      y = new FileReader("../conf/orders.ord");
					      in = new BufferedReader(y);
					      eingabe = new StringBuffer();
				          for (String str = in.readLine(); str != null; str = in.readLine()) 
				          eingabe.append(str + "\n");
					      in.close();
			    		  mtext = JOptionPane.showInputDialog(null, "Name des Befehls:");
			    		  String s2 = JOptionPane.showInputDialog(null, "Text des Befehls:");
						  addMenuItem(mtext);
			    		  p = new PrintStream("../conf/orders.ord");
			    		  p.append(eingabe);
			    		  p.append(Integer.toString(i) + "\n");
			    		  p.append(mtext + "\n");
			    		  p.append(s2 + "\n");
			    		  p.close();
			    		  bhinzufügen.disable();
					      }
					      catch(IOException ex) {
					    	  System.err.println("Konnte die Datei nicht auslesen.");
					      }
			}
			
				else if(i >= 21) {
					JOptionPane.showMessageDialog(null, "Es können maximal 20 Befehle gespeichert werden");
				}
		}
		
		else if(e.getSource().equals(item[0])) {
			readOutFile();
			MainClass.pane.append(fertig[2] + "\n");
		}

		else if(e.getSource().equals(item[1])) {
			readOutFile();
			MainClass.pane.append(fertig[5] + "\n");
		}
		else if(e.getSource().equals(item[2])) {
			readOutFile();
			MainClass.pane.append(fertig[8] + "\n");
		}
		else if(e.getSource().equals(item[3])) {
			readOutFile();
			MainClass.pane.append(fertig[11] + "\n");
		}
		else if(e.getSource().equals(item[4])) {
			readOutFile();
			MainClass.pane.append(fertig[14] + "\n");
		}
		else if(e.getSource().equals(item[5])) {
			readOutFile();
			MainClass.pane.append(fertig[17] + "\n");
		}
		else if(e.getSource().equals(item[6])) {
			readOutFile();
			MainClass.pane.append(fertig[20] + "\n");
		}
		else if(e.getSource().equals(item[7])) {
			readOutFile();
			MainClass.pane.append(fertig[23] + "\n");
		}
		else if(e.getSource().equals(item[8])) {
			readOutFile();
			MainClass.pane.append(fertig[26] + "\n");
		}
		else if(e.getSource().equals(item[9])) {
			readOutFile();
			MainClass.pane.append(fertig[29] + "\n");
		}
		else if(e.getSource().equals(item[10])) {
			readOutFile();
			MainClass.pane.append(fertig[31] + "\n");
		}
		else if(e.getSource().equals(item[11])) {
			readOutFile();
			MainClass.pane.append(fertig[34] + "\n");
		}
		else if(e.getSource().equals(item[12])) {
			readOutFile();
			MainClass.pane.append(fertig[37] + "\n");
		}
		else if(e.getSource().equals(item[13])) {
			readOutFile();
			MainClass.pane.append(fertig[40] + "\n");
		}
		else if(e.getSource().equals(item[14])) {
			readOutFile();
			MainClass.pane.append(fertig[43] + "\n");
		}
		else if(e.getSource().equals(item[15])) {
			readOutFile();
			MainClass.pane.append(fertig[46] + "\n");
		}
		else if(e.getSource().equals(item[16])) {
			readOutFile();
			MainClass.pane.append(fertig[49] + "\n");
		}
		else if(e.getSource().equals(item[17])) {
			readOutFile();
			MainClass.pane.append(fertig[52] + "\n");
		}
		else if(e.getSource().equals(item[18])) {
			readOutFile();
			MainClass.pane.append(fertig[55] + "\n");
		}
		else if(e.getSource().equals(item[19])) {
			readOutFile();
			MainClass.pane.append(fertig[58] + "\n");
		}
		
		
		else if(e.equals(metal)) {
			try {
			    UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
			    SwingUtilities.updateComponentTreeUI(MainClass.f);
			    MainClass.f.pack();
				}
				catch(Exception ex) {};
		}
		
		else if(e.equals(windows)) {
			try {
				UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
			    SwingUtilities.updateComponentTreeUI(MainClass.f);
			    MainClass.f.pack();
				}
				catch(Exception ex) {};
		}
		
		else if(e.equals(motif)) {
			try {
				UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
				}
				catch(Exception ex) {};
		}
		
		else if(e.getSource().equals(neu)) {
			if(!saved) {
			int yes = JOptionPane.showConfirmDialog(null, "Nochmal speichern?");
			if(yes == 0) {
			saveFileAs();
			MainClass.pane.setText(null);
			MainClass.f.setTitle("Vocamus Power PHP - noname.htm");
			this.saved = true;
			}
			else if(yes == 1) {
				MainClass.pane.setText(null);
				MainClass.f.setTitle("Vocamus Power PHP - noname.htm");
				this.saved = false;
			}
			}
			else {
				MainClass.pane.setText(null);
			}
		}
		
		else if(e.getSource().equals(laden)) {
			loadFile();
		}
		
		else if(e.getSource().equals(speichern)) {
			if(saved && savefile != null) {
				saveFile();
			}
			else {
				saveFileAs();
			}
		}
		
		else if(e.getSource().equals(speichernals)) {
			saveFileAs();
		}
		
		else if(e.getSource().equals(beenden)) {
			int yes = JOptionPane.showConfirmDialog(null, "Nochmal speichern?");
			if(yes == 0) {
				if(saved == true) {
					saveFile();
					System.exit(0);
				}
				else {
					saveFileAs();
				    System.exit(0);
				}
			}
			else if(yes == 1)
				System.exit(0);
		}
		
		else if(e.getSource().equals(schrift)) {
			String s = JOptionPane.showInputDialog(null, "Gewünschte Schriftgröße einstellen:");
			int zahl = Integer.valueOf(s).intValue();
			if(zahl <= 0) {
				JOptionPane.showMessageDialog(null, "Die Schrift muss größer als 0 sein.");
			}
			else {
				Font font = MainClass.pane.getFont();
				String name = font.getFontName();
				int style = font.getStyle();
				Font font2 = new Font(name, style, zahl);
				MainClass.pane.setFont(font2);
			}
		}
		
	}
	
	public void saveFile() {
	    FileOutputStream ps;
	    try {
		    	ps = new FileOutputStream(savefile.getPath());
		    	ps.write(MainClass.pane.getText().getBytes());
	    }
	    catch(FileNotFoundException ex) {
	    	System.err.println("Konnte nicht speichern");
	    }
	    catch(IOException ex) {
	    	System.err.println("Konnte nicht speichern");
	    }
	    finally {
	    	saved = true;
	    	MainClass.f.setTitle("Vocamus Power PHP - " + savefile.getName());
	    }
	}
	
	public void saveFileAs() {
		JFileChooser fc = new JFileChooser();
	    fc.setFileFilter( new FileFilter()
			    {
			      public boolean accept( File f )
			      {
			        return f.isDirectory() ||
			          f.getName().toLowerCase().endsWith( ".php" );
			      }
			      public String getDescription()
			      {
			        return "PHP-Skripte";
			      }
			    } );
			    fc.setFileFilter( new FileFilter()
					    {
					      public boolean accept( File f )
					      {
					        return f.isDirectory() ||
					          f.getName().toLowerCase().endsWith( ".html" ) ||
					          f.getName().toLowerCase().endsWith( ".htm" );
					      }
					      public String getDescription()
					      {
					        return "HTML-Dateien";
					      }
					    } );
		int state = fc.showSaveDialog(null);
	    if ( state == JFileChooser.APPROVE_OPTION ) {
		    savefile = fc.getSelectedFile();
		    FileOutputStream ps;
		    try {
		    	ps = new FileOutputStream(savefile.getPath());
		    	ps.write(MainClass.pane.getText().getBytes());
		    }
		    catch(FileNotFoundException ex) {
		    	System.err.println("Konnte nicht speichern");
		    }
		    catch(IOException ex) {
		    	System.err.println("Konnte nicht speichern");
		    }
		    finally {
		    	saved = true;
		    	MainClass.f.setTitle("Vocamus Power PHP - " + savefile.getName());
		    }
	    }
	}
	
	public void loadFile() {
		File file;
		if(!saved) {
		int yes = JOptionPane.showConfirmDialog(null, "Nochmal speichern?");
		if(yes == 0) {
			if(!saved)
				saveFileAs();
			else 
				saveFile();
		    JFileChooser fc = new JFileChooser();
		    fc.setFileFilter( new FileFilter()
		    {
		      public boolean accept( File f )
		      {
		        return f.isDirectory() ||
		          f.getName().toLowerCase().endsWith( ".php" );
		      }
		      public String getDescription()
		      {
		        return "PHP-Skripte";
		      }
		    } );
		    fc.setFileFilter( new FileFilter()
				    {
				      public boolean accept( File f )
				      {
				        return f.isDirectory() ||
				          f.getName().toLowerCase().endsWith( ".html" ) ||
				          f.getName().toLowerCase().endsWith( ".htm" );
				      }
				      public String getDescription()
				      {
				        return "HTML-Dateien";
				      }
				    } );
		    int state = fc.showOpenDialog( null );
		    if ( state == JFileChooser.APPROVE_OPTION )
		    {
		      file = fc.getSelectedFile();
		      FileReader y;
		      BufferedReader in;
		      
		      try {
		      y = new FileReader(file.getPath());
		      in = new BufferedReader(y);
		      StringBuffer eingabe = new StringBuffer();;
	          for (String str = in.readLine(); str != null; str = in.readLine()) 
	              eingabe.append(str + "\n");
		      in.close();
		      MainClass.pane.setText(eingabe.toString());
		      MainClass.f.setTitle("Vocamus Power PHP - "+ file.getName());
		      }
		      catch(FileNotFoundException ex) {
		    	  System.err.println("Konnte die Datei nicht finden.");
		      }
		      catch(IOException ex) {
		    	  System.err.println("Konnte die Datei nicht auslesen.");
		      }
		    }
		}
		else if(yes == 1) {
		    JFileChooser fc = new JFileChooser();
		    fc.setFileFilter( new FileFilter()
		    {
		      public boolean accept( File f )
		      {
		        return f.isDirectory() ||
		          f.getName().toLowerCase().endsWith( ".php" );
		      }
		      public String getDescription()
		      {
		        return "PHP-Skripte";
		      }
		    } );
		    fc.setFileFilter( new FileFilter()
				    {
				      public boolean accept( File f )
				      {
				        return f.isDirectory() ||
				          f.getName().toLowerCase().endsWith( ".html" ) ||
				          f.getName().toLowerCase().endsWith( ".htm" );
				      }
				      public String getDescription()
				      {
				        return "HTML-Dateien";
				      }
				    } );
		    int state = fc.showOpenDialog( null );
		    if ( state == JFileChooser.APPROVE_OPTION )
		    {
		      file = fc.getSelectedFile();
		      FileReader y;
		      BufferedReader in;
		      
		      try {
		      y = new FileReader(file.getPath());
		      in = new BufferedReader(y);
		      StringBuffer eingabe = new StringBuffer();;
	          for (String str = in.readLine(); str != null; str = in.readLine()) 
	              eingabe.append(str + "\n");
		      in.close();
		      MainClass.pane.setText(eingabe.toString());
		      MainClass.f.setTitle("Vocamus Power PHP - "+ file.getName());
		      }
		      catch(FileNotFoundException ex) {
		    	  System.err.println("Konnte die Datei nicht finden.");
		      }
		      catch(IOException ex) {
		    	  System.err.println("Konnte die Datei nicht auslesen.");
		      }
		    }
		}
	}
		else {
		    JFileChooser fc = new JFileChooser();
		    fc.setFileFilter( new FileFilter()
		    {
		      public boolean accept( File f )
		      {
		        return f.isDirectory() ||
		          f.getName().toLowerCase().endsWith( ".php" );
		      }
		      public String getDescription()
		      {
		        return "PHP-Skripte";
		      }
		    } );
		    fc.setFileFilter( new FileFilter()
				    {
				      public boolean accept( File f )
				      {
				        return f.isDirectory() ||
				          f.getName().toLowerCase().endsWith( ".html" ) ||
				          f.getName().toLowerCase().endsWith( ".htm" );
				      }
				      public String getDescription()
				      {
				        return "HTML-Dateien";
				      }
				    } );
		    int state = fc.showOpenDialog( null );
		    if ( state == JFileChooser.APPROVE_OPTION )
		    {
		      file = fc.getSelectedFile();
		      FileReader y;
		      BufferedReader in;
		      
		      try {
		      y = new FileReader(file.getPath());
		      in = new BufferedReader(y);
		      StringBuffer eingabe = new StringBuffer();;
	          for (String str = in.readLine(); str != null; str = in.readLine()) 
	              eingabe.append(str + "\n");
		      in.close();
		      MainClass.pane.setText(eingabe.toString());
		      MainClass.f.setTitle("Vocamus Power PHP - "+ file.getName());
		      }
		      catch(FileNotFoundException ex) {
		    	  System.err.println("Konnte die Datei nicht finden.");
		      }
		      catch(IOException ex) {
		    	  System.err.println("Konnte die Datei nicht auslesen.");
		      }
		    }
		}
		
	}
	
	private void addMenuItem(String text) {
		item[i] = new JMenuItem(text);
		befehle.add(item[i]);
		item[i].addActionListener(this);
		i++;
	}
	
	private void readOutFile() {
		FileReader y;
		BufferedReader in;
		StringBuffer eingabe;
		try {
		      y = new FileReader("../conf/orders.ord");
		      in = new BufferedReader(y);
		      eingabe = new StringBuffer();
	          for (String str = in.readLine(); str != null; str = in.readLine()) 
	          eingabe.append(str + "\n");
		      in.close();
			  String f = eingabe.toString();
			  fertig = f.split("\n");
		}
		catch(IOException ex) {};
	}
	
	private void createOrder() throws ArrayIndexOutOfBoundsException {
		int j = 0;
		while(fertig[j] != null) {
		 	addMenuItem(fertig[j + 1]);
			j += 3;
		}
	}
	
	private int changeVar(int x, char z) {
		if(x == 0 && z == 'n')
			return 0;
		else if(x == 0 && z == 'i')
			return 1;
		else if(x == 0 && z == 't')
			return 2;
		else if(x == 1 && z == 'n')
			return 3;
		else if(x == 1 && z == 'i')
			return 4;
		else if(x == 1 && z == 't')
			return 5;
		else if(x == 2 && z == 'n')
			return 6;
		else if(x == 2 && z == 'i')
			return 7;
		else if(x == 2 && z == 't')
			return 8;
		else if(x == 3 && z == 'n')
			return 9;
		else if(x == 3 && z == 'i')
			return 10;
		else if(x == 3 && z == 't')
			return 11;
		else if(x == 4 && z == 'n')
			return 12;
		else if(x == 4 && z == 'i')
			return 13;
		else if(x == 4 && z == 't')
			return 14;
		else if(x == 5 && z == 'n')
			return 15;
		else if(x == 5 && z == 'i')
			return 16;
		else if(x == 5 && z == 't')
			return 17;
		else if(x == 1 && z == 'n')
			return 18;
		else if(x == 1 && z == 'i')
			return 19;
		else if(x == 1 && z == 't')
			return 20;
		else if(x == 2 && z == 'n')
			return 21;
		else if(x == 2 && z == 'i')
			return 22;
		else if(x == 2 && z == 't')
			return 23;
		else if(x == 3 && z == 'n')
			return 24;
		else if(x == 3 && z == 'i')
			return 25;
		else if(x == 3 && z == 't')
			return 26;
		else if(x == 4 && z == 'n')
			return 27;
		else if(x == 4 && z == 'i')
			return 28;
		else if(x == 4 && z == 't')
			return 29;
		else if(x == 5 && z == 'n')
			return 30;
		else if(x == 5 && z == 'i')
			return 31;
		else if(x == 5 && z == 't')
			return 32;
		else 
			return -1;
	}

}
```


----------



## gote (11. Aug 2006)

der hats mehrmals gemacht sry^^

Edit Illuvatar: Hab den 2. deiner Posts gelöscht....


----------



## Wildcard (11. Aug 2006)




----------



## Leroy42 (11. Aug 2006)

Wildcard hat gesagt.:
			
		

>



LOL! Der paßt wie die ...

Ist das jetzt ein neuer Rekord im Quellcode-Posten?


----------



## gote (11. Aug 2006)

macht euch ruhig über mich lustig^^


----------



## Wildcard (11. Aug 2006)

Ich hab ja echt schon einiges gesehen, aber sowas noch nicht:

```
if(fertig != null) {
         try {
            createOrder();
            if(fertig[57] == null) {
               if(fertig[54] == null) {
                  if(fertig[51] == null) {
                     if(fertig[48] == null) {
                        if(fertig[45] == null) {
                           if(fertig[42] == null) {
                              if(fertig[39] == null) {
                                 if(fertig[36] == null) {
                                    if(fertig[33] == null) {
                                       if(fertig[30] == null) {
                                          if(fertig[27] == null) {
                                             if(fertig[24] == null) {
                                                if(fertig[21] == null) {
                                                   if(fertig[18] == null) {
                                                      if(fertig[15] == null) {
                                                         if(fertig[12] == null) {
                                                            if(fertig[9] == null) {
                                                               if(fertig[6] == null) {
                                                                  if(fertig[3] == null) {
                                                                     i = 0;
                                                                  }
                                                                  i = 1;
                                                               }
                                                               i = 2;
                                                            }
                                                            i = 3;
                                                         }
                                                         i = 4;
                                                      }
                                                      i = 5;
                                                   }
                                                   i = 6;
                                                }
                                                i = 7;
                                             }
                                             i = 8;
                                          }
                                          i = 9;
                                       }
                                       i = 10;
                                    }
                                    i = 11;
                                 }
                                 i = 12;
                              }
                              i = 13;
                           }
                           i = 14;
                        }
                        i = 15;
                     }
                     i = 16;
                  }
                  i = 17;
               }
               i = 18;
            }
            i = 19;
         }
         catch(ArrayIndexOutOfBoundsException ex) {}
```
Erinnert mich vage an Brainfuck2D  :autsch:


----------



## Leroy42 (11. Aug 2006)

gote hat gesagt.:
			
		

> macht euch ruhig über mich lustig^^



Das machen wir doch gar nicht. Es geht nur darum, daß diese Riesenmenge
an gepostetem einen die Flucht ergreifen läßt. (Der Doppelpost mach nix kommt öfter mal vor)

_ok, und wie kann ich ihm sagen, dass er bei abbrechen nix machen soll?_

Ich habe deine 3,141,592 Source-Zeilen ( :wink: ) zwar nicht alle studiert, aber
als Antwort auf deine Frage:


```
theFrame.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
```

dürfte das sein, was du suchst.


----------



## Leroy42 (11. Aug 2006)

Wildcard hat gesagt.:
			
		

> Ich hab ja echt schon einiges gesehen, aber sowas noch nicht:
> 
> ```
> // Ein paar Zeilen Code...
> ...



Bevor sich jemand auf den Schlips getreten fühlt,
noch der Hinweis, daß es eine Sprache dieses Namens _tatsächlich_ gibt!


----------



## gote (11. Aug 2006)

```
else if(e.getSource().equals(beenden)) {
			if(VocMenubar.saved) {System.exit(0); }
			else {
			int yes = JOptionPane.showConfirmDialog(null, "Nochmal speichern?");
			if(yes == 0) {
				if(VocMenubar.saved == true) {
					VocMenubar.saveFile();
					System.exit(0);
				}
				else {
					VocMenubar.saveFileAs();
				    System.exit(0);
				}
			}
			else if(yes == 1)
				System.exit(0);
			
			else
				MainClass.f.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
		}
		}
```

der findet DO_NOTHING_ON_CLOSE net


----------



## Leroy42 (11. Aug 2006)

Das ist eine Konstante aus WindowConstants die aber auch von JFrame implementiert wird.
Also statt

```
MainClass.f.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
```
schreibst du

```
MainClass.f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
```


----------



## gote (11. Aug 2006)

danke, wie und wo kann man brianfuck 2d lernen ^^? das is geil


----------



## Leroy42 (11. Aug 2006)

gote hat gesagt.:
			
		

> danke, wie und wo kann man brianfuck 2d lernen ^^? das is geil



Zum Einstieg in esoterische Programmierung ist BrainFuck(2D) vielleicht etwas zu 
hochgegriffen. Fang doch erst mal mit etwas bekannterem an:

Java2K

Die Sprache hat auch ein paar nette Eigenschaften:

- Statt im Binräsystem zu arbeiten, kommt die Sprache uns entgegen und arbeitet
im allseits beliebtem Zahlensystem zur Basis 11  :shock:   

- Jede Anweisung macht mit einer garantierten Wahrscheinlichkeit von 90%
genau das was sie soll!  :shock:  :autsch: 

Das heißt wenn du eine Berechnung auf zwei Wegen ausführst und dabei dasselbe rauskommt,
liegt die Wahrscheinlichkeit dafür das das Ergebnis falsch ist nur noch bei (1-0.1²) = 1%   

Aber vorsicht: Der Test ob beide Ergebnisse auch wirklich gleich sind, liefert ebenfalls
nur mit einer Wahrscheinlichkeit von 90% das richtige Ergebnis!  :? 

Und zum Lernen, schlage ich dir vor mit der Umsetzung eines einfachen,
kleinen, überschaubaren Programms anzufangen.

Was wäre dafür ein besserer Kandidat als dein *momentanes* Projekt!


----------



## Wildcard (11. Aug 2006)

Ich hab mir mal die Arbeit gemacht dein Programm auf Whitespace zu portieren:

EDIT: Leider hab ich die Code-Tags vergessen und jetzt hat's das Board gefressen  :bae:


----------



## Leroy42 (11. Aug 2006)

Wildcard hat gesagt.:
			
		

> Ich hab mir mal die Arbeit gemacht dein Programm auf Whitespace zu portieren:
> EDIT: Leider hab ich die Code-Tags vergessen und jetzt hat's das Board gefressen  :bae:



Was für ein Pech aber auch!  :cry: 

Vorschlag! 

Druck das Programm einfach aus(*), scanne es wieder ein, und sende es
als Sammlung von jpg's. (Numerierung der Seiten nicht vergessen, wegen der Übersichtlichkeit).

(*)Wenn du immer schön abwechselnd *eine* Seite ausdruckst und gleich einscannst,
kannst du deinen Drucker immer mit derselben Seite füttern.

Nicht umsonst sind Ausdrucke von Whitespace-Programmen berüchtigt
für ihre unvergleichliche Resourcen-Sparsamkeit (Tinte, Papier).


----------



## André Uhres (11. Aug 2006)

Als ich die vielen Posts in diesem Thread sah, da dachte ich schon ihr seid recht fleissig gewesen, während ich mich mit meiner Familie im Bitburger Schwimmbad vergnügte.
Aber beim näheren Hinsehen verschlugs mit fast die Sprache, hab grad noch diese paar Zeilen zusammengekriegt..


----------

