In diesem kleinen Artikel möchte ich kurz zeigen wie man Properties in Java in Dateien auslagern kann und diese dann nutzen kann. Wahrscheilich haben Sie schon oft bemerkt das bei einem Java Programm hin und wieder eine "Dateiname.properties" beiliegt.
Als Beispiel möchte ich ein kleines Programm entwickeln das zeigen soll wie man so etwas nutzen kann. Das Beispiel Programm speichert die Größe des Anwendungsfenster bevor es geschlossen wird. Wenn das Programm wieder aufgerufen wird startet es in der alten Größe.
- Erstellen eines Java Programms mit folgendem Code, soll als Ramen für unser Beispiel dienen
import java.awt.event.WindowEvent; import java.awt.event.WindowListener;
import javax.swing.JFrame;
public class MainFrame extends JFrame implements WindowListener{
public MainFrame(){ super(); init(); }
private void init() { setDefaultCloseOperation(EXIT_ON_CLOSE); addWindowListener(this); }
public void windowOpened(WindowEvent event) {}
public void windowClosing(WindowEvent event) {}
public void windowClosed(WindowEvent event) {}
public void windowIconified(WindowEvent event) {}
public void windowDeiconified(WindowEvent event) {}
public void windowActivated(WindowEvent event) {}
public void windowDeactivated(WindowEvent event) {} public static void main(String[] args) { MainFrame frame = new MainFrame(); frame.setVisible(true); }
} - Anlegen einer Properties Datei mit folgendem Inhalt ...
height=564 position.y=60 width=704 position.x=103 - Einlesen der Properties Datei ...
... protected Properties properties; ... private void init() { loadPropertiesFile(); setDefaultCloseOperation(EXIT_ON_CLOSE); addWindowListener(this); } protected void loadPropertiesFile() { properties = new Properties(); try { properties.load(new FileInputStream("example.properties")); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } ... - Speichern der Properties Datei ...
protected void savePropertiesFile(){ try { properties.store(new FileOutputStream("example.properties"),"example.properties"); } catch (IOException e) { e.printStackTrace(); } } - Laden der Properties beim Fenster öffnen Event ...
public void windowOpened(WindowEvent event) { if(properties != null){ int width = Integer.parseInt(properties.getProperty("width")); int height = Integer.parseInt(properties.getProperty("height")); setSize(width,height); int x = Integer.parseInt(properties.getProperty("position.x")); int y = Integer.parseInt(properties.getProperty("position.y")); setLocation(new Point(x,y)); } } - Speichern der Properties beim Fenster schließen Event ...
public void windowClosing(WindowEvent event) { if(properties != null){ properties.setProperty("width",String.valueOf(getSize().width)); properties.setProperty("height",String.valueOf(getSize().height)); properties.setProperty("position.x",String.valueOf(getLocation().x)); properties.setProperty("position.y",String.valueOf(getLocation().y)); savePropertiesFile(); } }
|