私は Java クラスを持っています。JTabbedPane がクリックされたときに DB から情報をロードするためのクエリ (EclipseLink を使用した JPA) を作成します。データは JTable にバインドされた TableModel にロードされます。選択したタブを取得するには、MouseEvent の MouseClicked を使用します。しかし、一部のテーブルの読み込みに失敗し、何もクリックされていないように感じますが、タブを移動して読み込みに失敗したタブに戻ると、最終的にデータが読み込まれることがあります。以下の私のコード:
private void jTabbedPane1MouseClicked(java.awt.event.MouseEvent evt) {
int selectTab = jTabbedPane1.getSelectedIndex();
if (selectTab == 1) {
bookValueTable.getColumnModel().getColumn(0).setMaxWidth(150);
bookValueTable.getColumnModel().getColumn(1).setMaxWidth(150);
if (!tab2Opened) { //this makes sure the data is not loaded multiple time....
tab2Opened = true;
Query q = em.createQuery("select e from EnterpriseInvestments e Where e.acctYear = :acctYear");
q.setParameter("acctYear", acctYear);
List<EnterpriseInvestments> resultList = q.getResultList();
for(EnterpriseInvestments p: resultList){
Object row[] = {p.getEnterprise().getRcNo(), p.getAcctYear(), p.getInvestmentItem(),
nf.format(p.getInvestmentAmount())};
shareCapitalModel.addRow(row);
}
}
bookValueTable.setRowSorter(new TableRowSorter(shareCapitalModel));
}
問題の原因がどこにあるのかわからない: JPA、TabbedPane、または EventHandler!