我正在jtable上工作。對於此表的每一行(當我選擇它時),我需要打開一個新的jframe。 打開應用程序後,我使用一個按鈕進行簡單的搜索,我第一次選擇一行,它工作正常; 當我關閉剛剛打開的這個新的jframe時,問題就會出現,我執行另一個搜索,然後我選擇
另一行;在實踐中,打開具有相同內容的多個jframe。這就像發送了多個請求。關閉JFrame
此代碼是在主應用程序:
private static String QUERY_BASED_ON_SITE2="from WordsToFind a where a.wordToFindName like '";
private void runQueryBasedOnName2() {
executeHQLQuery2(QUERY_BASED_ON_SITE2 + jTextField14.getText() + "%'");
}
private void executeHQLQuery2(String hql2) {
try {
Configuration configuration = new Configuration().configure();
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
SessionFactory factory = configuration.buildSessionFactory(builder.build());
Session session = factory.openSession();
Query q2 = session.createQuery(hql2);
List resultsWords2 = (List) q2.list();
System.out.println("resultsWords2 ----> " + resultsWords2);
displayWords2(resultsWords2);
} catch (ClassNotFoundException ex) {
Logger.getLogger(ClientEditor.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(ClientEditor.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
if(!jTextField14.getText().trim().equals("")) {
runQueryBasedOnName2();
}
}
private void displayWords2(List resultsWords2) throws ClassNotFoundException, InstantiationException {
Vector<String> tableHeaders2 = new Vector<String>();
final Vector tableWords2 = new Vector();
tableHeaders2.add("Word Id");
for(Object ow : resultsWords2) {
WordsToFind words;
words = (WordsToFind)ow;
Vector<Object> oneRowWords = new Vector<Object>();
oneRowWords.add(words.getWordToFindId());
tableWords2.add(oneRowWords);
}
jTable4.setModel(new DefaultTableModel(tableWords2, tableHeaders2));
jTable4.setAutoCreateRowSorter(true);
jTable4.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jTable4.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int selectedRow = jTable4.getSelectedRow();
selectedRow = jTable4.convertRowIndexToModel(selectedRow);
SimpleSwingBrowser browser = new SimpleSwingBrowser();
browser.setVisible(true);
browser.loadURL("http://www.google.com");
browser.highlihtWord();
}
});
}
我嘗試添加的代碼follwing線插入SimpleSwingBrowser類
和
dispose();
也
this.dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
我獲得了相同的結果。 謝謝Alb
你的問題不清楚,關閉jframe時發生了什麼?單擊某一行時打開了多少個框架? –
你能展示一些更多的代碼嗎?你的方法應該工作。 –
你真的需要打開一個JFrame嗎,還是你需要一個JWindow? – user489041