Java Swingの初心者として、ユーザーインターフェイスロジックをドメインロジックから分離するのに問題があります。
JLabel、JTextField、およびJButtonを含むJFrameを備えた小さな(些細な?)Swingアプリがあります。JButtonを押すと、JFileChooserダイアログがポップアップします。ファイルを選択した後、JTextFieldにはファイルへの絶対パスが含まれます。これまでのところ、壮観なものはありません。次に達成したいのは、ファイルのこの絶対パスが、選択が行われ、JTextFieldが更新されたとき(ファイルが選択されるたびに)にファイルの実際の処理を処理するファイルマネージャークラスに「注入」されることです。 JButtonを使用)。
私が持っている質問:
- ファイルの読み取りを開始するタイミングをファイルマネージャーに通知するにはどうすればよいですか?(たとえば、そのファイル内の行数を数えます)
- UIレイヤー内で最小限の情報が共有されるようにドメインレイヤーを実装するにはどうすればよいですか?UIにファイルマネージャーインスタンスを追加する必要がありますか?
- JTextFieldの値をファイルマネージャーへの参照として使用する必要がありますか、それともJButtonアクションを使用して値をファイルマネージャーに設定する必要がありますか?つまり、JTextFieldのpropertychangelistenerを使用するか、JButtonのactionlistenerを使用しますか?
- filebeanを使用して、ドメインレイヤー内にファイルの絶対パスを保存する必要がありますか、それともファイルマネージャーに直接挿入する必要がありますか?違いは次のとおりです。プロパティ変更リスナーを使用すると、UI入力が変更されたときにファイルの絶対パスの値を更新できますが、コンストラクターまたはセッターを使用して値を直接挿入する場合は、ファイルマネージャーで変更を処理する必要があります。 filebeanの変更を処理する代わりに。
- ドメインロジック内のファイルマネージャー内のUIで使用されているfilebeanを参照するにはどうすればよいですか?
- ドメインロジックはビジネスロジックと同じですか?つまり、ファイルマネージャクラスはパッケージwhatever.b-logicにあり、filebeanクラスはパッケージwhatever.domainにある必要がありますか?
アプリケーションはいくつかのパッケージに分かれています。
- 何でも:メインクラス
- 何でも。プレゼンテーション:スイングのもの
- 何でも.domain:データのもの
- whatever.logic:アプリケーションロジック
私は十分に明確であることを願っています...
物事を片付けてくれてありがとう。