EDIT4:
理由はわかりませんが、以下で使用した構造が機能しませんでした。java2s Web サイトで見つけたファイルを変更する必要がありました。これは TableFromDatabase と呼ばれ、JTextFields を public static にしてから、FrmMovimento などで TableFromDatabase クラスをインスタンス化します。
TableFromDatabase frame = new TableFromDatabase();
jDesktopPane2.add(frame);
frame.show();
TableFromDatabase 行も変更しました
frame.setDefaultCloseOperation( EXIT_ON_CLOSE_ );
に
frame.setDefaultCloseOperation( DISPOSE_ON_CLOSE );
元の投稿:
プログラムのこの部分、JInternalFrame ファイル FrmMovimento で、Visualizar (「表示」) というボタンを作成しました。テキスト フィールドに入力した内容に基づいて、ユーザーが定義した間隔を表示する必要があります。
これらの JTextFields があります: Code from: _ To: _ Asset: _
これらの JFormattedTextFields: Date from: _ To: _
たとえば、すべてのレジスタを選択する別の SELECT ステートメントを使用すると、JInternalFrame FrmListarMov から JDesktopPane にすでに表示されているレジスタがあります。しかし、タイトルで入力したように入力した場合はそうではありません:
public List<MovimentoVO> Lista() throws ErroException, InformacaoException{
List<MovimentoVO> listaMovimento = new ArrayList<> ();
try {
MySQLDAO.getInstancia().setAutoCommit(false);
try (PreparedStatement stmt = MySQLDAO.getInstancia().prepareStatement(
"SELECT * FROM Cadastro2 WHERE Codigo BETWEEN "+ txtCodDeMov +" AND "+ txtCodAteMov +";") {
ResultSet registro = stmt.executeQuery();
while(registro.next()){
MovimentoVO Movimento = new MovimentoVO();
Movimento.setCodDeMov(registro.getInt(1));
Movimento.setCodAteMov(registro.getInt(2));
Movimento.setAtivoMov(registro.getString(3));
Movimento.setDataDeMov(registro.getString(4));
Movimento.setDataAteMov(registro.getString(5));
listaMovimento.add(Movimento);
}
}
} catch (SQLException ex) {
throw new ErroException(ex.getMessage());
} catch (InformacaoException ex) {
throw ex;
}
return listaMovimento;
}
SELECT 行の txtCodDeMov は、"Code from" の JTextField に付けた名前で、txtCodAtemov は最初の "To" の JTextField に付けた名前です。
ああ、Linux Mint 12 64 ビットで NetBeans 7.1.2 (Build 201204101705) と MySQL Ver 14.14 Distrib 5.1.63 を使用しています。
編集: 実際には、MovimentoVO2、MovimentoDAO2 などです。2 つのファイルを作成したためです。申し訳ありませんが、私はまだこれらのテクニックを使用することに初心者です。
テーブル Cadastro2 から、主キー Codigo のみがクエリに使用されます。後で、資産の売買を登録する別のテーブルを作成します。これにより、資産のタイプと移動日が保持され、SELECT ... BETWEEN ... AND に追加されます。ここまでで、JTextField に入力した値を Java が取得して SELECT コマンドに入れる方法を理解するだけで済みます。
EDIT2: クライアント登録画面では、次のようにクエリ ボタンが 100% 機能しています。しかし、これは状況が異なります。この場合、指定されたコード (テーブル Cadastro2 の主キー) を持つレジスタが見つかった場合、ボタン イベントによってすべての JTextField が完了するためです。ここでやりたいことは、間隔内のすべてのレジスターを含むテーブルを作成することです。
EDIT3: 正しい用語はレポート生成だと思います。iReport と Jasper Reports について聞いたことがありますが、使用したことはありません。このプロジェクトは 12 月に大学で発表しなければならないことを考えると、これら 2 つのツールを学習する時間はありますか? 私はまだJavaを学んでいるので、それは悪い動きでしょうか? 最初はそうだと思うので、すべてNetbeansだけでやっています。