当前位置: 首页 > 知识库问答 >
问题:

addRow到单独类Eclipse中的DefaultTableModel

越涛
2023-03-14

我创建了一个DefaultTableModel,它在JTabbedPane中显示了一个非常基本的用户列表。

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要求我向Statistics类添加一个名为“add row”的方法,但我以为“add row”已经是DefaultTableModel的方法了,所以我很困惑。有没有人能帮助我如何将一行数据添加到表中?谢谢IA

共有1个答案

颜实
2023-03-14

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,因此可能需要重新设计

 类似资料:
  • 问题内容: 我有单独的类来处理鼠标侦听器。但是当我在另一个类中使用它时,它不起作用,并且我还不知道如何解决这个问题。这是我的Handler类: DrawingCanvas类: StatusBar类: 和MouseEventGUI类: 当我运行该程序时,在状态栏中显示“未监听鼠标”(请参见MouseEventGUI类),希望它在画布中移动时显示鼠标光标的坐标。 [更新] 如果在同一个类中,则 可以

  • 我尝试使用另一个类中的OnClickListener,但不知为什么它会给我抛出一个错误。有人能帮我解决这个问题吗? 主要活动的一部分: 错误: java.lang.RuntimeException:无法启动activity ComponentInfo{com.example.user.project/com.example.user.project.MainActivity}:java.lang.

  • 问题内容: 我有一个包含200多个测试类别的近500个单独测试的项目。这些测试中有一些在完成测试后并不能很好地关闭它们自己的状态,在Eclipse中这会导致某些测试失败。通过Ant从命令行运行测试套件时,所有测试均通过。 我可以在Eclipse中以某种方式启用“测试隔离”吗?我不在乎是否需要更长的时间。 从长远来看,我会清理行为异常的测试,但短期而言,我想使测试正常工作。 问题答案: 如果在Ecl

  • 问题内容: 至少在Java中,编译器不允许我将两个(或多个)单独的类放在一个类文件中。它迫使我在同一程序包中创建多个文件。我理解为什么会这样,并且我同意这一原则。但是,我已经意识到,我可以轻松地将类嵌套并在单个文件中包含整个程序(不包括导入的库)。我想这会被皱眉,但是我不明白为什么。与标准系统相比,嵌套类的危害和不利之处是什么(除了组织和整洁度的严重损失之外)? 问题答案: 好吧,如果将所有内容保

  • 问题内容: 我试图将我的Swing GUI与实际代码分开。简而言之,我希望用户启动一个过程(基于用户的选择);在这种情况下,将不再需要JFrame。 我不知道的是如何与Main.class共享来自GUI.class的用户选择。 您对我有什么建议吗? 这是我的代码: 问题答案: 一个很好的方法是使用 机制。 遵循的步骤: 创建一个回调接口 } 类将实现接口,但不提供任何实现 制作类 现在创建一个类的

  • 我正在开发一个需要调用一些Jenkins实例的应用程序,为此我使用jenkins-cli. jar 我可以使用命令行调用jar以轻松提取其输出。然而,我需要自己解析异常。 为了正确处理异常,我现在通过反射调用jar的main方法: 但现在,我需要以某种方式将jar打印的输出获取到系统中。我知道我可以使用这个系统。放样()。问题是,我有其他线程同时记录。我在这里读到了这个系统。out是特定于类加载器