对不起,糟糕的表达让人困惑,我再次编辑我的问题。
有一个整数数组,它包含29个数字,这29个数字由0到10组成。
例如:integer[]num={0,3,4,5,6,1,3,10,4,3,1,0,2,3,4,1,0,8,7,6,6,5,8,9,0,5,10,8}我想将这些数字重新排列成jtable(限制6行,10列)。
如果0<=数字<5,我将称之为“小”数字;
如果5<=数字<10,我将称之为“大”数字;
如果号码=10,我就叫他们“p”号。
总之,这29个数字由3种类型的数字(“samll”、“big”、“p”)组成。在数组num中,我们可以看到前三个数字属于“小”数字,因此它们在c1中逐个显示,第四个是5,它是“大”数字,因此它跳转到下一列,转到c2,c1的剩余单元格将不再使用。如果同一类型的数字超过6,它将向右转到下一个最近的单元格继续显示(参见第二个示例图像)。其他数组数字的逻辑相同,循环数组数字,然后根据jtable中的数字类型显示数字。最终结果是我想要的jtable,你可以看到下面我发布的示例图像。任何人张贴的样本代码将非常有助于我,提前感谢!
在第二个示例图像下方,红色下划线数字总计为6以上的10个“小”数字,因此转到右侧最近的单元格继续显示。绿色下划线表示总共7个“大”数字,因为c6中的第六个单元格已被占用,所以它向右转到第五个单元格后的继续显示
2条答案
按热度按时间bksxznpy1#
我编写代码只是为了创建6x10
int
矩阵。这是我的许多测试中的一个测试的输出。
oracle提供了一个有用的教程,使用jfc/swing创建gui,它将帮助您学习如何创建swing gui。跳过netbeans部分。
您将需要使用
JTable
显示矩阵。在解决创建矩阵这样的问题时,将其分解为多个步骤会有所帮助。继续将其分解为多个步骤,直到可以对每个步骤进行编码。
这项任务非常复杂,我必须打印调试输出以确保取得进展。不要害怕放很多东西
System.out.print
及System.out.println
代码中的语句。您可以像我一样使用调试布尔值来关闭额外的打印语句。下面是创建6x10矩阵的完整可运行代码。我没有检查超过10个值子集。我把它留给你了。
eqoofvh92#
如果您真的想这样做,那么可以考虑一个非常类似于2d数组的jtable,例如,
int[][] yourArray = new int[6][10];
.所以你名单上的第一个数字是
yourArray[0][0] = 0
,接下来的两个在同一列上yourArray[1][0] = 3
及yourArray[2][0] = 4
,下一个数字5进入新列yourArray[0][1] = 5
等等因此,在转向时,您可以在循环内部执行类似操作,将数字放入jtable:
但为了确保转弯时没有重叠,还应使用: