我试图在迭代JTable
的行和列之后显示数组的内容。我试过Arrays.toString(myTwoDimensionalArrayVariable)
但它不会显示字符串值。
我的目标是在用户尝试从来源 {{1}添加行值时,检查目标 JTable
每行每列的重复项这就是我想显示数组内容的原因。
列上的值是JTable
,double
和String
的组合。
int
我只得到这个输出:
int myRowCount = aJTableParameter.getRowCount();
int myColumnCount = aJTableParameter.getColumnCount();
Object[][] myRowValues = new Object[myRowCount][myColumnCount];
for (int j = 0; j < myRowCount; j++) {
for(int i = 0; i< myColumnCount; i++){
myRowValues[j][i] = aDestinationTable.getValueAt(j, i);
}
}
System.out.println(Arrays.toString(myRowValues));
if (Arrays.asList(myRowValues).contains(column1Value)
&& Arrays.asList(myRowValues).contains(column2Value)
&& Arrays.asList(myRowValues).contains(column3Value)
&& Arrays.asList(myRowValues).contains(column4Value)) {
JOptionPane.showMessageDialog(null, "Duplicate, try again.");
}else{
//do something else
}
除了使用2维数组之外还有其他选择吗?
我很感激任何帮助。
感谢。
答案 0 :(得分:1)
IFF您的JTable单元格仅包含字符串,您可以将数组定义为 String[][]
而不是Object[][]
,并使用aDestinationTable.getValueAt(j, i).toString()
将其填充为JTable内容。
List<List<Object>> objectList = new ArrayList<>();
for (int j = 0; j < 2; j++) {
objectList.add(j, new ArrayList<>());
for (int i = 0; i < 2; i++) {
if (i==0) objectList.get(j).add("string" + j + i);
if (i==1) objectList.get(j).add((double) 37.8346 * j * i);
}
}
System.out.println("OBJECT LIST: "+objectList);
输出:
OBJECT LIST: [[string00, 0.0], [string10, 37.8346]]
您的代码应该如下所示,然后:
List<List<Object>> myRowValues = new ArrayList<>();
for (int j = 0; j < myRowCount; j++) {
myRowValues.add(j, new ArrayList<>());
for (int i = 0; i < myColumnCount; i++) {
myRowValues.get(j).add(aDestinationTable.getValueAt(j, i));
}
}
System.out.println(myRowValues);