首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在jtable中解决这个错误?

如何在jtable中解决这个错误?
EN

Stack Overflow用户
提问于 2013-03-09 19:25:33
回答 1查看 1.3K关注 0票数 0

我想在表中显示数据库中的数据。我收到了这个错误:“无法从静态上下文引用非静态变量jtable1”。帮我解决这个错误

代码语言:javascript
运行
复制
st.executeQuery("select * from course" );
                 ResultSet rs = st.getResultSet();
                 ResultSetMetaData md = rs.getMetaData();
                 int c_count = md.getColumnCount();
                 Vector data = new Vector(c_count);
                 Vector row = new Vector(c_count);
                 Vector colname = new Vector(c_count);
                 for(int i=0;i<c_count;i++)
                 {
                     colname.addElement(md.getColumnName(i));
                 }
                 while(rs.next())
                 {
                 for(int i=0;i<c_count;i++)
                 {
                   row.addElement(rs.getObject(i));  
                 }
                 data.addElement(row);
                 row = new Vector(c_count);
                 }
                 DefaultTableModel model = new DefaultTableModel(data,colname);
                 jTable1.setModel(model);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-09 21:46:50

main方法有一个静态上下文,因此它不能直接访问任何实例变量。假设您有一个名为Foo的类,其中包含静态的main方法和一个私有变量jTable1。首先,您应该为jTable1变量添加一个具有以下签名的getter

代码语言:javascript
运行
复制
public JTable getTable() {
 return jTable1;
}

接下来,在main方法中,您必须创建Foo的一个实例

代码语言:javascript
运行
复制
Foo fooInstance = new Foo();

现在,您可以设置模型,如下所示:

代码语言:javascript
运行
复制
DefaultTableModel model = new DefaultTableModel(data,colname);
fooInstance.getTable().setModel(model);

最后,Foo类将如下所示

代码语言:javascript
运行
复制
public class Foo {


     private javax.swing.JTable jTable1;

     public JTable getTable() {
          return jTable1;
     }

     public static void main(String[] args) {
          //your code

          Foo fooInstance = new Foo();

          DefaultTableModel model = new DefaultTableModel(data,colname);
          fooInstance.getTable().setModel(model);

           //your code
     }
}

一般来说,这个主题是您必须熟悉的内容,因此请查看官方的Java tutorial http://docs.oracle.com/javase/tutorial/或直接在谷歌上搜索它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15310114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档