Java 来自另一个JFrame的JTable值

Java 来自另一个JFrame的JTable值,java,swing,jtable,access-modifiers,Java,Swing,Jtable,Access Modifiers,我有JTable,我想设置另一帧中特定单元格的值。当我尝试这样做时,我得到空指针异常。我更改了修饰符并删除了异常,但仍然无法设置值 请大家帮忙 public ChequeVoucher(int id,int row){ try { String str = get_bank_name(id); System.out.println(str); table.getModel().setValueAt(str,row

我有
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) {
        }
    }
支票凭证是我的构造函数,这段代码在这之前是好的

 table.getModel().setValueAt(str,row,5);
JFrame
我从is中得到值

   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)
抱歉,前面的帖子不清楚

您调用的chequeconcert方法肯定是一个构造函数,此时,您的表是空的,除非您用其他内容指定它的值。您可以在构造函数中添加表,这将解决问题。
最好的解决方案是使用JTable作为构造函数参数创建一张支票凭证,并使用方法完成所有其他操作。

看这里,回答是@Hovercraft Full-Of-Eels,对我来说,这将是一个类似的问题me@mKorbel谢谢,但这不是我想要的,因为我认为我的主要问题是jTable,然后将MouseListener更改为Please don't swallow exceptions(请不要吞咽异常)。然后,您没有显示的代码中出现了错误-您的设置错误。后退一步,了解对象、类和访问器范围。。
 case KeyEvent.VK_F5:
     switch(col){
         case 4:
         //show the banks 
         popupBanks pB = new popupBanks(row); 
         pB.setVisible(true);

         break;
  }