1

我对java有点陌生,我正在制作一个小程序,我需要在这个小程序中显示一个数组(数字从0到255)(我把它放在JScrollPane中):

RC4 密码小程序

我还想稍后处理每个条目和其中的值。我尝试使用 JTable,但最大列数为 100。我为每个条目考虑了一个 JLabel,但它需要永远......

对不起,如果这是一个重复的问题,但我在这里搜索了问题,我找不到我需要的

哦,不,这不是家庭作业,我只是在为自己做一个小项目:)谢谢!

4

1 回答 1

1

好吧,JLabel如果你做这样的事情,使用 s 不会永远:

for (int i = 0; i < array.length; i++) {
    contentPanel.add(new JLabel(array[i]));
}

这是第一种方法。您还可以通过继承 JPanel 和覆盖来自己绘制带有数字的网格paintComponent(Graphics)。例子:

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    int currX = 10, currY = 10; // A 10px offset
    int gridBoxSize = 50; // In pixels. Should be large enough for three digits.

    for (int i = 0; i < array.length; i++) {
        if (currX + gridBoxSize > this.getWidth()) {
            currX = 10;
            currY += gridBoxSize;
        }
        g.setColor(Color.BLACK);
        g.drawRect(currX, currY, gridBoxSize, gridBoxSize);
        g.drawString(new String(array[i]), currX + 2, currY + 2);
    }
}

笔记:

  • 我假设您在问题中谈论的数组是这样声明的int[] array;
  • 上面的代码只是一个草稿,我没有编译或测试它。
于 2013-04-10T17:39:59.457 回答