我有一個控制所有應用程序的主類,包括顯示所有面板。以顯示主應用面板的方法是:Java GUI面板重新驗證
private void displayMainApplicationPanel() {
String[] columnNames = { "Media ID", "Title", "Pricipal Actors", "Type", "Duration", "Launch Date", "Price",
"Status" };
ResultSet resultSet = databaseLogicController.showMediaInfo();
String[][] data = parseMediaResultSet(resultSet, 8);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
graphicController.showMainApplicationPanel(data, columnNames);
addMainApplicationPanelSearchButtonActionListener();
addMainApplicationPanelSearchTextFieldKeyListener();
addMainApplicationPanelShowMyIdButtonActionListener();
addMainApplicationPanelBorrowMediaButtonActionListener();
addMainApplicationPanelMakeInternetRezervationButtonActionListener();
addMainApplicationPanelShowVHSInformationButtonActionListener();
addMainApplicationPanelShowDVDInformationButtonActionListener();
addMainApplicationPanelShowInternetRezervationsActionListener();
addMainApplicationPanelShowClientsInformationButtonActionListener();
addMainApplicationPanelInsertClientButtonActionListener();
addMainApplicationPanelInsertMovieButtonActionListener();
addMainApplicationPanelInsertVHSButtonActionListener();
addMainApplicationPanelInsertDVDButtonActionListener();
}
});
}
在那個主面板中,我有一個表,該表顯示了所有當前媒體。我希望能夠通過搜索功能更新該表格。
的搜索按鈕動作監聽器的代碼是:
private void addMainApplicationPanelSearchButtonActionListener() {
graphicController.getMainApplicationPanel().addSearchButtonActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String[] columnNames = { "Media ID", "Title", "Pricipal Actors", "Type", "Duration", "Launch Date", "Price",
"Status" };
String title = graphicController.getMainApplicationPanel().getSearchTextField().getText();
ResultSet resultSet = databaseLogicController.showParticularMediaInfo(title);
String[][] data = parseMediaResultSet(resultSet, 8);
graphicController.getMainApplicationPanel().setMediaTable(new JTable(data, columnNames));
graphicController.getMainApplicationPanel().repaint();
graphicController.getMainApplicationPanel().revalidate();
graphicController.getMainFrame().repaint();
graphicController.getMainFrame().revalidate();
}
});
}
現在,我在基於搜索條件的動作偵聽器創建一個新表,並將其設置在主應用程序面板,然後調用主畫面和主面板上的重繪和重新驗證。爲什麼不顯示新表格?
它給了我一個ClassCastException; – FanFan 2015-01-09 21:08:53
你正在使用什麼類型的表模型?投給它 – 2015-01-09 21:11:14
事情是。我沒有改變,或者有任何改變表模型的代碼。 – FanFan 2015-01-09 21:11:49