我的應用程序處理患者記錄。在主框架中,用戶可以打開幾個內部框架。每個內部框架都包含一個選項卡窗格,用戶創建的每個選項卡都包含一個可輸入患者數據的表單和一個顯示所有添加患者的jtable。java swing-轉義鍵事件導致classCastException的外觀
當用戶單擊jtable中的一行(患者)時,表格的字段將填入患者的數據,當他按下「Escape」時,表格的字段將被清除,用戶可以繼續搜索/檢查/輸入另一位患者。
我的問題是,這個轉義鍵事件,在我使用的Substance look and feel中拋出classCastException。我爲執行的操作編寫的代碼工作正常。自從我開始使用選項卡式窗格(在單個窗格中創建所有內容之前)出現了此問題。如果我改變外觀和感覺,例如Windows,則不會拋出異常。你有什麼主意嗎?
這裏是一個代碼示例:
private void db_existKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ESCAPE)
{
searchField.requestFocusInWindow(); // if user doesn't want to process any of the entries shown to the table
if(searchField.getText().length()>=1) // focus goes to search field and data pane fields are cleared form previous shows
{
dataPane.setPid(-1);
dataPane.getPersonalDataPane().clearAll();
treat_diagPane.getDiagnosis_pane().clearAll();
treat_diagPane.getTreat_pane().clearAll();
}
DefaultTableModel model=new DefaultTableModel(
new Object [][] {
},
new String [] {
bundle.getString("lname"), bundle.getString("fname"), bundle.getString("date_birth"), bundle.getString("occupation")
});
db_exist.setModel(model);
}
這是拋出的異常:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JTabbedPane cannot be cast to javax.swing.JDesktopPane
at javax.swing.plaf.basic.BasicDesktopPaneUI$Actions.actionPerformed(BasicDesktopPaneUI.java:329)
at org.jvnet.lafwidget.tabbed.TabPagerWidget$4.actionPerformed(TabPagerWidget.java:158)
,這是導致異常的代碼:
public void actionPerformed(ActionEvent e) {
JDesktopPane dp = (JDesktopPane)e.getSource();
String key = getName();
if (CLOSE == key || MAXIMIZE == key || MINIMIZE == key ||
RESTORE == key) {
setState(dp, key);
}
else if (ESCAPE == key) {
if (sourceFrame == dp.getSelectedFrame() &&
focusOwner != null) {
focusOwner.requestFocus();
}
moving = false;
resizing = false;
sourceFrame = null;
focusOwner = null;
}
嗨,歡迎計算器!提示:可以發佈很長的問題。爲了使它們可讀,請使用空行來創建新段落。我冒昧地編輯你的問題並添加它們:-)。 – sleske 2010-01-11 11:33:53
另外,請鏈接到您使用的外部軟件,除非它很常見(如Eclipse或Apache共享)。我將「物質L&F」與你聯繫起來。 – sleske 2010-01-11 11:34:56