2
我有JTable
,我想在另一個框架的特定單元格中設置值。當我嘗試這樣做時,我得到空指針異常。我更改了修飾符並刪除了異常,但仍然無法設置值。來自另一個JFrame的JTable值
請人幫忙
public ChequeVoucher(int id,int row){
try {
String str = get_bank_name(id);
System.out.println(str);
table.getModel().setValueAt(str,row,5);
table.getModel().setValueAt(id,row,4);
} catch (SQLException f) {
}
setBank(id,row);
}
public void setBank(int id,int row){
try {
String str = get_bank_name(id);
table.getModel().setValueAt(str,row,5);
} catch (SQLException f) {
}
}
的chequevoucher是我的構造函數,這段代碼是好的,直到這個
table.getModel().setValueAt(str,row,5);
和JFrame
我得到的值從是
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int row = table.getSelectedRow();
int col = table.getSelectedColumn();
String str_id = (String)GetID(row,0);
int id = Integer.parseInt(str_id);
ChequeVoucher CV = new ChequeVoucher(id,row);
setVisible(false);
}
});
訪問修飾符不是靜態的,所以我得到以下錯誤堆棧
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at client.ChequeVoucher.(ChequeVoucher.java:215) at client.popupBanks$3.mouseClicked(popupBanks.java:130) at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253) at java.awt.Component.processMouseEvent(Component.java:6292) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6054) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4652) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4247) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:603) at java.awt.EventQueue$1.run(EventQueue.java:601) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:617) at java.awt.EventQueue$2.run(EventQueue.java:615) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:614) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
當我做了修飾靜,我沒有得到任何異常,但什麼也沒有發生,我不能聽JTable
了
case KeyEvent.VK_F5:
switch(col){
case 4:
//show the banks
popupBanks pB = new popupBanks(row);
pB.setVisible(true);
break;
}
對不起,我以前的帖子不清楚
看這裏http://stackoverflow.com/questions/7053283/sending-messages-between-two-jpanel-objects,通過@Hovercraft全鰻魚的答案,這將是similair問題對我來說 – mKorbel
@mKorbel 感謝,但這不是我正在尋找的,因爲我認爲我的JTable – Sedz
的主要問題然後將MouseListener更改爲http://download.oracle.com/javase/tutorial/uiswing/events/listselectionlistener.html – mKorbel