【发布时间】:2020-10-12 15:05:12
【问题描述】:
这是 NetBeand GUI 代码。我特别需要帮助。 如何让这段代码在被询问的元素中追加整行到 TextArea:
String trener1 = jTextField9.getText();
DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
int mCol = model.getColumnCount();
int mRow = model.getRowCount();
for(int i = 0; i < mCol; i++){
for(int j = 0; j < mRow; j++){
if(jTable1.getModel().getValueAt(i, j).equals(trener1)){
jTextArea1.append(model.getValueAt(i).toString()+ "\n");
}
}
}
代码应该这样做:我有一个健身房成员列表。关于他们的信息在表格中,他们的名字,年龄,导师。当我在一个 TextField 中键入讲师的姓名时,我希望拥有该讲师的所有成员的姓名都附加到 TextArea。 和他们的年龄一样。
【问题讨论】:
-
不要描述表中的数据——描述可能不明确。只需发布数据样本就更清楚了。您的代码也没有说明教练与健身房成员的关系。有导师专栏吗?是用 id 或名字来指代讲师还是什么?如果你想要一个好的答案,你需要改进这个问题。
-
教师在表中有一列。 - 所以你编写一个循环来检查每一行的教师(你还没有遍历这些列)。当您找到匹配项时,您会从当前行的每一列中获取其他数据。
-
你在说什么?您自己的代码已经有了答案。您可以使用 getValueAt() 从表模型中获取数据。您知道哪一行匹配,因为那是教师姓名匹配的索引。
-
如果此代码有效 - 并且您已收到有关如何改进代码的建议。我还没有看到您更新代码以显示您尝试过的内容。编码是关于逻辑的。您不会从测试书中学习逻辑。如果讲师姓名仅包含在单个列中,是否在逻辑上测试所有列的名称?你让你的代码太复杂了。你检查每一行的教练,然后当你找到教练时做一些事情。
-
当我使用 getValueAt() 时,它告诉我它不接受 int 类型 - 不知道你在暗示什么。这两个参数是 int 值。如果你有问题。然后发布实际的错误消息和导致问题的语句。如果您需要更多帮助,请发布正确的 minimal reproducible example 来展示问题。
标签: java swing user-interface netbeans