0

私はJavaを使い慣れていないので、自分のアプリのナビゲーションを作成するにはどのアプローチが最適なのか知りたい。 私のアプリの機能と、私が選んだアプローチについて説明します。Javaのナビゲーションのアプローチ

すべてのネットワーキングとその他の詳細については、後で説明しますが、ここではGUIの部分に集中します。

基本的に私のアプリは、以下のん:あなたはそれを起動すると

  1. 、あなたは、ログイン画面が表示され、そして2つのボタン(登録及びログイン)。
  2. サインアップ画面は基本的な登録画面です。それに応じてコンポーネントが表示されます。
  3. ユーザーが正しいログイン情報を入力すると、いくつかのデータを含むビューが表示されます。今

、私はアプリのためのグローバルであり、ユーザーがボタンをクリックすると、それ以前のコンテンツを削除し、「再ペイント」の新しいコンポーネントのJDialog/JFrameの/フレームを作ることを考えました。私はv.init();を使用して他のコンテンツを「再作成」するグローバルフレーム(私の場合はJDialog)に合格したAccount v = new Account(parent);を呼び出すことによって

private JButton signUp; 
private final JDialog parent; 
..... 

signUp = new JButton("Sign Up"); 
signUp.addActionListener(new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent arg0) { 
     // TODO Auto-generated method stub 
     parent.getContentPane().removeAll(); 
     parent.validate(); 
     parent.pack(); 
     Account v = new Account(parent); 
     v.init(); 
    } 
}); 
// add all the components to the parent frame 
parent.add(signUp); 
..... 

:私のサインアップ画面から

スニペット。 私の考えは:私は私のアプリケーションに必要なすべての "ビュー"は、私が必要なコンポーネントを追加する "親"フィールド(コンストラクタが呼び出されるときにグローバルフレームを取得する)が必要です。毎回、ビューの.init()メソッドを呼び出す前に、以前のすべてのコンテンツを削除します。 私はスレッドとMVCについて読んで以来、これは良いアプローチであるとは思えません。一方、私のアプローチは本当にシンプルで、マルチスレッドやMVCを複雑にするかどうかはわかりません。

私のアプローチを使って、かなり柔軟なUIを作りました。フレームのプロパティ(サイズ、フォーカス、有効化など)をどのビューからでも「再生」できます。

注:「表示」と言うときは、作成時にparentフィールドを受け取り、.init()を使用して親フレーム内にコンテンツを追加するクラスを指しています。

編集:あなたからのコードは必要ありません。ちょっとしたアドバイスが必要です。ナビゲーションスタイルに関する私のアプローチのために、深刻な問題に直面するアプリケーションの開発をさらに望んでいないため、私はこれを行います。あなたはどちらか削除することができます

+1

*「JAVAナビゲーションアプローチ。私はJavaに新しい」* Javaには大文字が1つしかありません。これは略語または略語ではありません。 –

+1

脇に:このサイトはタブをコードフォーマットでうまく処理できず、スペースとタブが混在すると完全に混乱します。その結果、読みにくい混乱が生じます。助けを得る上での障害になる可能性があります;-) – kleopatra

答えて

1

は/必要なUIで実際のカードをshwoing

revalidate(); 
repaint(); 

または使用CardLayoutを呼び出して新しいコンテンツを再度追加しました。

+0

私のアプローチはどうですか?それは悪いですか?もしそうなら、私はそれを変更して、あなたのことを気にしません。 – Teo

関連する問題