gpt4 book ai didi

java - 来自另一个 JFrame 的 JTable 值

转载 作者:行者123 更新时间:2023-11-30 11:51:55 26 4
gpt4 key购买 nike

我有 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)

When I made the modifiers static, I get no exceptions but nothing happens and I can't listen to the JTable anymore

 case KeyEvent.VK_F5:
switch(col){
case 4:
//show the banks
popupBanks pB = new popupBanks(row);
pB.setVisible(true);

break;
}

抱歉之前不清楚的帖子

最佳答案

您调用的 ChequeVoucher 方法绝对是一个构造函数,此时,您的表为空,除非您用其他东西指定它的值。您可以在构造函数中添加表,这将解决问题。最好的解决方案是使用 JTable 作为构造函数参数创建一个 ChequeVoucher,并使用方法完成其他所有操作。

关于java - 来自另一个 JFrame 的 JTable 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7171699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com