2013-10-22 21 views
0

我创建了一个DefaultTableModel,它在JTabbedPane中显示了一个非常基本的用户联盟表。将addRow添加到独立类中的DefaultTableModel中Eclipse

我想使用从不同类收集的一些数据添加一行。此代码将不会运行,但这里是一个示例:

import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.table.DefaultTableModel; 

public class Statistics extends JPanel { 
    public Object[][] data; 

public Statistics() { 
    super(new GridLayout(1,0)); 
    String[] columnNames = {"Name", "Games Played", "Games Won"}; 
    Object[][] data = { 
      {"Tom", new Integer(5), new Integer(2)}, 
      {"Steve", new Integer(2), new Integer(0)}, 
    }; 
    DefaultTableModel model = new DefaultTableModel(data, columnNames); 
    JTable table = new JTable(model); 
    table.setFillsViewportHeight(true); 
    table.setVisible(true); 
    table.setEnabled(false); 

    JScrollPane scrollPane = new JScrollPane(table); 
    add(scrollPane); 
} 


} 

然后我把这个从我的主类:

... 
stats = new JPanel(); //create a new JPanel for table to go on 
... 
tp.addTab ("Statistics", stats); // add panel to JTabbedPane 
.. 
leagueTable = new Statistics();// add the table to the stats panel 
     stats.add(leagueTable); 

这显示了其优良的,但任何人都可以指导我,什么语法我用它来添加一行,我曾尝试:

leagueTable.addRow(table.getRowCount(), new Object[]{"ange", 5, 3}); 

但是,这并不工作,Eclipse询问我到一个叫“addRow”的方法添加到统计类,但我想“addRow”已经是一个方法的DefaultTableModel,所以我我很困惑。任何人都可以帮助我了解如何将一行数据添加到表中?谢谢IA

回答

2

addRowTableModel的方法,但您正在调用Statistics类的方法。您可以创建一个新的方法来添加数据:

public class Statistics extends JPanel { 
    private DefaultTableModel model 

    public Statistics() { 
     super(new GridLayout(1,0)); 
     model = new DefaultTableModel(data, columnNames); 
     ... 
    } 

    public void addData(Object[] data) { 
     model.addRow(data); 
    } 
} 

边注:通常你不想在这里延长JPanel如果不增加新的功能,以便重新设计可能是为了

+0

当我使用这个Eclipse询问我创建了一个名为模型.... –

+0

我会创造'Statistics'的新方法添加我试图创建一个方法的行数据 – Reimeus

+0

一个局部变量,但不确切地确定我应该在方法中写什么。我尝试了几件事,但迄今为止还没有发挥作用。 –

2

leagueTable是你的Statistics类的实例。所以它没有addRow()方法。

可能的解决办法:

  • 让你DefaultTableModel变量在Statistics类。
  • 在与模型相互作用的统计量中创建一个方法 在模型上调用addRow()
+0

谢谢。当你说'保存参考'时,这意味着什么?如同在主类中声明的那样?我试图创建一个方法来调用,但不知道它应该返回什么。我尝试了很多不同的东西,但不断收到可怕的红色波浪线! –

+0

是将其保存为您创建的统计类中的变量。 – jzd

+0

谢谢,您的意见帮助了很多:-) –