Hallo Leute,
Warum nervt Java mich immer? Weil ich schon AS3 UserPref und Adobe Air problemlos gemacht habe.
Ich will Java Frame als Reposition und Resize wenn Java App beim WindowClolsing als Pref.ser abspeichern und ich öffne wieder gebliebene Position und gebliebene Größe.
Wusstet ihr nicht dass es genialer Trick wie Adobe Air UserPref
Und ich habe Java Klasse gemacht:
userpref.java:
Das ist für Objekt um die Instanze von alle Strings ins Objekt
FileSerializer.java
Die Funktion ist für Schreiben und Lesen mit dem Objekt zur Datei.
Hier ist MainApp.java
Und warum steht JFrame nicht mehr richtig und sieht wie zurückgesetzt? Äh??????
Wie komme ich hier um mein JFrame Fenster richtig positieren und skalieren beim SPeichern und Laden?
Danke für Antwort!
Warum nervt Java mich immer? Weil ich schon AS3 UserPref und Adobe Air problemlos gemacht habe.
Ich will Java Frame als Reposition und Resize wenn Java App beim WindowClolsing als Pref.ser abspeichern und ich öffne wieder gebliebene Position und gebliebene Größe.
Wusstet ihr nicht dass es genialer Trick wie Adobe Air UserPref
Und ich habe Java Klasse gemacht:
userpref.java:
Java:
import java.io.Serializable;
public class userpref implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public int appHeight;
public int appWidth;
public int posX;
public int posY;
}
Das ist für Objekt um die Instanze von alle Strings ins Objekt
FileSerializer.java
Java:
package net.sourceskyboxer.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class FileSerializer {
public void writeObjectToFile(Object obj, String filePath) throws Exception
{
ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(filePath));
obj = new Object();
output.writeObject(obj);
output.close();
}
public Object readObjectFromFile(String filePath) throws IOException, Exception
{
File file = new File(filePath);
if(file.exists())
{
ObjectInputStream input = new ObjectInputStream(new FileInputStream(filePath));
Object objTo = (Object) input.readObject();
input.close();
return objTo;
}
return null;
}
}
Hier ist MainApp.java
Java:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
class MainApp {
public Container createContentPane() {
//Create the content-pane-to-be.
JPanel contentPane = new JPanel(new BorderLayout());
contentPane.setOpaque(true);
return contentPane;
}
public JMenuBar CreateMenuBar(){
JMenuBar menuBar;
menuBar = new JMenuBar();
menuBar.setVisible(true);
// Menu File:
JMenu file = new JMenu("File");
menuBar.add(file);
// File -> Exit:
JMenuItem exit = new JMenuItem("Exit");
file.add(exit);
// Menu Edit
JMenu edit = new JMenu("Edit");
menuBar.add(edit);
// Menu View
JMenu view = new JMenu("View");
menuBar.add(view);
// Menu Help
JMenu help = new JMenu("Help");
menuBar.add(help);
JMenuItem about = new JMenuItem("About");
help.add(about);
exit.addActionListener(new ActionListener()
{
private userpref ups;
@SuppressWarnings("null")
public void actionPerformed(ActionEvent e)
{
try (
ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(System.getenv("LOCALAPPDATA")+File.separator+"pref.ser"));
){
ups = null;
JFrame frame = null;
ups.appWidth = frame.getWidth();
ups.appHeight = frame.getHeight();
ups.posX = frame.getX();
ups.posY = frame.getY();
output.writeObject(ups);
output.close();
}
catch(Exception ex){
}
System.exit(0);
}
});
return menuBar;
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
SwingUtilities.invokeLater(new Runnable()
{
public void run() {
//Create and set up the window.
final JFrame frame = new JFrame("JavaPaint");
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
//Create and set up the content pane.
MainApp demo = new MainApp();
frame.setJMenuBar(demo.CreateMenuBar());
frame.setContentPane(demo.createContentPane());
//Display the window.
frame.setBounds(120, 125, 600, 420);
frame.setVisible(true);
frame.addWindowListener( new WindowAdapter() {
@SuppressWarnings("null")
@Override
public void windowClosing(WindowEvent we) {
try (
ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("pref.ser"));
){
userpref ups = null;
ups.appWidth = frame.getWidth();
ups.appHeight = frame.getHeight();
ups.posX = frame.getX();
ups.posY = frame.getY();
output.writeObject(ups);
output.close();
}
catch(Exception ex){
}
System.exit(0);
}
} );
frame.addWindowListener( new WindowAdapter() {
private userpref up;
public void windowOpened(WindowEvent we){
// TODO Auto-generated method stub
try{
//use buffering
ObjectInputStream input = new ObjectInputStream(new FileInputStream("pref.ser"));
try{
up = (userpref) input.readObject();
frame.setPreferredSize(new Dimension(up.appWidth, up.appHeight));
frame.setLocation(new Point(up.posX, up.posY));
input.close();
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
catch(IOException ex){
}
}
});
}
});
}
}
Und warum steht JFrame nicht mehr richtig und sieht wie zurückgesetzt? Äh??????
Wie komme ich hier um mein JFrame Fenster richtig positieren und skalieren beim SPeichern und Laden?
Danke für Antwort!