2011-06-25 13 views
1

私はFinancial Bookの問題を解決するのに役立つチュートリアルソフトウェアに取り組んでいます。コンボボックスや書式付きテキストボックスを含むワークシートのようなものです。私は一つのことを除いて、すべてがうまくいっています。私が行った作業をいつでも保存できる方法はありますか。Netbeansを使用したJava Desktopアプリケーション

レメが特定されていなければなりません。 12の章があり、各章には15-20の問題があります。それぞれの問題は、テキストボックスとコンボボックスといくつかのjtabbedパネルなどを組み合わせたデザインです。ワークシートの半分を解決して保存したい場合は、後でソフトウェアを開くことができます。それを行う方法はありますか?問題は、すべてのシートにはコンボボックスとテキストボックスの数が異なるため、変数も異なります。事前に

おかげで

+0

これがNetBeans [Java Desktop Application](http://stackoverflow.com/questions/2561480/netbeans-guieditor-generating-its-own-incomprehensible-code/2561540#2561540)の場合は、 'jsr296'タグです。 – trashgod

答えて

1

ワークシートのモデルが必要です。このモデルはデータ構造であり、それを表すためにGUIウィジェットが使用されるという事実とは何の関係もありません。

保存時に、シンプルなシリアライズで開始するモデルの状態をディスクに保存します。起動時に読み込みます。

これらの行には、ワークシートの均一な処理が可能です。

public interface PersistentModel { 
    boolean save (OutputStream out) throws IOException; 
    boolean load (InputStream out) throws IOException; 
} 
public interface SpreadSheet extends PersistentModel { 
    Worksheet[] getWorksheets(); 
    Worksheet getWorksheet(int i); // and other related, etc. 
} 

public interface Worksheet extends PersistentModel { 
    int id(); 
    Element get(String name): 
    Element[] getElements(); 

    public interface Element<T> extends PersistentModel { 
     String getName(); 
     T getValue(); 
     boolean setValue(T v); 
    } 
} 

SwingはMVCを使用して、あなたは同じのプレゼンテーションで、標準モデル(ワークシートの状態を保持するデータ構造を)フックのメカニズム、および、GUIを(おそらくスイング)があります。私はそれが問題ではないと思います。

+0

この返答いただきありがとうございます。あなたが何を意味するのか正確にはわかりません。説明できますか。もう一度mtに質問したいと思います。私は5つのコンボボックスと5つの書式設定されたテキストボックスを含むjPanelを持っています。コンボボックスにリストがあります。私は3人で何かを入力しました。私はここまで仕事を保存したい。次回は私が開くように。これら3つのコンボボックスとテキストボックスには、選択して入力したのと同じ考えが含まれている必要があります。 – Gaurav

+0

この場合のJPanelでは、モデルのデータが表示されるため、ワークシートはJPanelにマップされます。したがって、モデルからjpanel状態を設定し、ビューが変更されたときにモデルを更新する方法が必要になります。それは標準のGUIプログラミングです。上記の答えは、統一モデルが使用するための推奨構造です。 – alphazero

1

さてあなたは、データベースまたはファイルストアにこのデスクトップapplication.Thinkの状態を保存するために、そして永続ストアを持っている必要があります。 「アプリの状態」をシリアル化することもできます。オブジェクトに保存してディスクに保存し、アプリを再起動するとリロードします。

+0

私はこれをもう一度します。データベースのオーバヘッドを保証するようには思われませんが、値をファイルに書き込んでから、次回読み込んだときにプログラムに解析してしまう可能性があります。 – Andrew

+0

true ..しかし、私はチュートリアルの質問を想定して、データベース(ローカルダービーなど)から来て、より柔軟なアプリケーションを持ち、ハードコーディングされた質問でのみ使用されることはありません。 – Cris

+0

助けてくれてありがとうが、もう少し詳しく説明することができます。 詳細をお知らせください。 5つのコンボボックスと5つの書式付きテキストボックスを含むjPanelがあるとします。コンボボックスにリストがあります。私は3人で何かを入力しました。私はここまで仕事を保存したい。次回は私が開くように。これらの3つのコンボとテキストボックスには、私が選択して入力したのと同じ考えが含まれている必要があります。 – Gaurav

関連する問題