表限制的大小设置为静态限制,我想将其更改为动态
这里声明了 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();
问题数据的大小限制为 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++;
}
如果你知道答案,请在这里分享..
最佳答案
在您的 previous question 中,您使用的是 DefaultTableModel
。请记住,TableModel
本身就是一种数据结构。无需将数据存储在两个数据结构中,即您的data[][]
和DefaultTableModel
。 DefaultTableModel
的底层结构是 Vector
的动态 Vector
。
你能做的就是这个。只需使用此构造函数声明包含 0 行的 DefaultTableModel
然后只需使用
将行动态添加到结构中-
public void addRow(Object[] rowData)
- 在模型末尾添加一行。除非指定 rowData,否则新行将包含 null 值。将生成正在添加的行的通知。
所以基本上,你的声明将是这样的
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查看更多可用的构造函数和方法
关于java - 如何将静态jtable限制更改为动态(静态对象数组更改为动态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21797434/