2011-07-15 22 views
2

実行中のアプリケーションを保存して後で戻ることができるプログラムを持っています これを達成するためにテキストファイルから読み書きできることはわかっていますが、プログラムは非常に驚異的です私は10以上のクラスと何千ものJTextFields、JComboBoxsなどを持っているので、実際にそれを行う良い方法ではありません。誰も私がテキストファイルからの書き込み/読み込みなしでこれを達成できる方法を知っていますか?実行中のアプリケーションを保存する

Microsoft Excelでは、あなたがそこにファイル(.exl)をロードし、それらを編集することができ:

私が行うことができるために必要なものの例は、これがあります。

答えて

1

The Swing Application Frameworkは、アプリケーションの終了時にセッション状態を保存し、再起動時に状態を復元する方法を提供します。セッション状態は、アプリケーションのグラフィカルなウィンドウ構成です。この状態には、ウィンドウのサイズ、内部フレームの位置、選択されたタブ、列の幅、およびその他のグラフィックプロパティが含まれます。

+0

あなたが投稿したものを見て、私がやりたいことは可能ですが、私は問題に遭遇しました:私が保存する必要があるクラス、またはJFrameを既に拡張しているもの、そして投稿したものからApplicationContextクラスあなたは私がこの問題を解決するために何をすべきかという考えを持っていますか? –

+0

この例を見てくださいhttp://java.sun。com/developer/technicalArticles/javase/swingappfr /#code18このようなコードでは、拡張JFrameを使用することができます。からgetMainFrame();メソッドを使用すると、拡張JFrameを返すことができます。 – zacheusz

+0

NetBeansを使用していて、ApplicationContextクラスがなく、JFrame mainFrame = getMainFrame()をJFrame mainFrame = thisに変更したとのことです。それは働くだろうか? –

1

これを行う良い方法は、コントロールからのデータを標準形式に保存し、そのクラスをシリアル化できるようにすることです。そのデータをファイルに保存することができます。ここでは、Javaでのシリアライゼーションについてはa linkです。

UPDATE

私はちょうどあなたが何千ものフォームコントロールのを持っていると述べたことに気づきました。だから、あなたはおそらく1つのクラスでこれをすべてやりたいとは思わないでしょうが、クラスの階層を維持し、データを別々のクラスに分割したいと思うかもしれません。これはあなたの懸念を分けるのにも役立ちます。うまくいけば、あなたのデータを表すPOJOやドメインクラスがあるといいでしょう。そうであれば、あなたの仕事はもっと簡単になります。これはまた、懸念の分離が良い理由です:)。

+0

downvoteに行く場合は、少なくとも理由を説明してください。 –

+0

私はdownvoteしませんでしたか?私はそれが役に立ちました –

+0

@マイケルああ、それはあなたに指示されていませんでした。誰かが私を落胆させた。 –

1

どのようにExcelがこれを行うと思いますか?各セルのタイプと値、ワークシートを独自のバイナリ形式で記述したメタデータをファイルに格納します。複雑な内部状態のカスタムアプリケーションを使用している場合は、記憶形式を設計して自分で状態を直列化する必要があります。 Javaシリアライゼーションを使用することはできますが、多少の努力を必要とするわけではありません。アプリケーションの状態を保存するには

0

、私は2つの一般的な方法を考えることができます:

1)データベース 2におけるアプリケーションの状態を保存)、バイナリファイルやXMLアプリケーションの状態を保存、jsonまたはあなたが望む任意のフォーマット。

多分、このアプリについてもっと詳しく説明します。役立つだろう。

はそれが

ソリューションは、アプリケーションの種類によって異なることがあります...!^ Webアプリケーション、ファットクライアントアプリケーション、クライアント/サーバーアプリケーションです。

希望します。

関連する問題