所以我想让我的Jscrollpane显示Pascals三角形。我有这个:

labelPanel= new JPanel();
lRows = new JLabel[n];

for (int i=0;i<n;i++){
    lRows[i]=new JLabel(Arrays.toString(tri.tri[i]));
    labelPanel.add(lRows[i]);
}


但这不是我想要的,而且我不确定如何解决此问题(包括图片)。有什么帮助吗?

最佳答案

默认情况下,JPanel使用流布局。要获得所需的垂直排列,您应该能够通过在BoxLayout上使用垂直方向的labelPanel进行操作,然后添加JLabel行。

labelPanel= new JPanel();
//set this up to order things vertically
labelPanel.setLayout(new BoxLayout(labelPanel, BoxLayout.Y_AXIS));
lRows = new JLabel[n];

for (int i=0;i<n;i++){
    lRows[i]=new JLabel(Arrays.toString(tri.tri[i]));
    //to center your label, just set the X alignment
    lRows[i].setAlignmentX(Component.CENTER_ALIGNMENT)
    labelPanel.add(lRows[i]);
}


我还排成一行以使行像您的图片一样居中。 Component来自java.awt软件包。

您可以在Java Tutorial中阅读默认情况下可用的不同布局管理器

09-27 18:40