私はJavaを使い慣れていないので、自分のアプリのナビゲーションを作成するにはどのアプローチが最適なのか知りたい。 私のアプリの機能と、私が選んだアプローチについて説明します。Javaのナビゲーションのアプローチ
すべてのネットワーキングとその他の詳細については、後で説明しますが、ここではGUIの部分に集中します。
基本的に私のアプリは、以下のん:あなたはそれを起動すると
- 、あなたは、ログイン画面が表示され、そして2つのボタン(登録及びログイン)。
- サインアップ画面は基本的な登録画面です。それに応じてコンポーネントが表示されます。
- ユーザーが正しいログイン情報を入力すると、いくつかのデータを含むビューが表示されます。今
、私はアプリのためのグローバルであり、ユーザーがボタンをクリックすると、それ以前のコンテンツを削除し、「再ペイント」の新しいコンポーネントの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()
を使用して親フレーム内にコンテンツを追加するクラスを指しています。
編集:あなたからのコードは必要ありません。ちょっとしたアドバイスが必要です。ナビゲーションスタイルに関する私のアプローチのために、深刻な問題に直面するアプリケーションの開発をさらに望んでいないため、私はこれを行います。あなたはどちらか削除することができます
*「JAVAナビゲーションアプローチ。私はJavaに新しい」* Javaには大文字が1つしかありません。これは略語または略語ではありません。 –
脇に:このサイトはタブをコードフォーマットでうまく処理できず、スペースとタブが混在すると完全に混乱します。その結果、読みにくい混乱が生じます。助けを得る上での障害になる可能性があります;-) – kleopatra