所以我想让我的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中阅读默认情况下可用的不同布局管理器