【问题标题】:How to change Static jtable limit to dynamic (static object array to dynamic)如何将静态 jtable 限制更改为动态(静态对象数组为动态)
【发布时间】:2014-02-15 12:16:47
【问题描述】:

表格限制的大小设置为静态限制,我想将其更改为动态

这里声明了 jtable 和对象。

    public  JTable issuetable = null;   
    static Object[][] data;

这是我的 jtable

public  JTable getIssues() {
    issuetable = new JTable();


    String[] colName = {"Member", "Book", "Issue Date", "Return Date ",
            "Remarks" };
    List<Issue>issues=ServiceFactory.getIssueServiceImpl().findAllIssue();

issuedata的大小限制为100000..我想将限制更改为动态..

    data=new Object[issues.size()][100000];

    for(Issue issue:issues){

        data[i][0]=issue.getMemberId().getName();
        data[i][1]=issue.getBookId().getName();
        data[i][2]=issue.getIssueDate();
        data[i][3]=issue.getReturnDate();
        data[i][4]=issue.getRemark();
        data[i][5]=issue;
        i++;
    }

如果你知道答案,请在这里分享..

【问题讨论】:

    标签: java swing dynamic static jtable


    【解决方案1】:

    在您的previous question 中,您使用的是DefaultTableModel。请记住,TableModel 本身就是一个数据结构。无需将数据存储在两个数据结构中,即您的data[][] DefaultTableModelDefaultTableModel的底层结构是Vectors的动态Vector

    你能做的就是这个。只需使用此构造函数声明您的 DefaultTableModel 为 0 行

    然后只需使用

    将行动态添加到结构中

    所以基本上,你的声明会是这样的

    String[] colName = {"Member", "Book", "Issue Date", "Return Date ", "Remarks" };
    DefaultTableModel model = new DefaultTableModel(colName, 0);
    JTable table = new JTable(model);
    

    然后只需添加行

    String member = "Stack";
    String book = "overflow";
    Data issueDate = date;
    ....
    Object[] row = { member, book, issueDate, returnDate, remarks };
    DefaultTableModel model = (DefaultTableModel)table.getModel();
    model.addRow(row);
    

    请阅读DefaultTableModel api documentation 以查看更多可用的构造函数和方法

    【讨论】:

      【解决方案2】:

      AbstractTableModel 的实现中使用可动态调整大小的数据结构,而不是数组。这个EnvDataModel 是一个包含Map&lt;String, String&gt; 的示例。

      【讨论】:

        【解决方案3】:

        您可以使用 List 作为自定义 TableModel 的数据结构,而不是将所有数据从 List 复制到 DefaultTableModel。然后,您可以从此 TableModel 中添加/删除问题对象。

        请参阅Row Table Model 中的JButtonTableModel.java 示例,了解如何扩展RowTableModel 以提供此功能的简单示例。

        使用这种方法,数据只在一个地方,您可以直接从 TableModel 访问问题对象。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-12-28
          • 1970-01-01
          • 1970-01-01
          • 2017-08-12
          • 2012-03-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多