[请参阅附件图像,我试图获取JLabel“时间”以转到指定的Gridlayout的底部,我不确定为什么setVerticalAlignment没有解决问题。Image here。任何帮助将不胜感激,祝你有美好的一天!
JPanel timePossPeriod = new JPanel();
timePossPeriod.setLayout(new GridLayout(2,0,0,0));
timePanel.add(timePossPeriod);
time = new JLabel("12:00");
time.setFont(score);
time.setHorizontalAlignment(JLabel.CENTER);
time.setVerticalAlignment(JLabel.BOTTOM);
time.setVerticalTextPosition(JLabel.BOTTOM);
timePossPeriod.add(time);
new GridLayout(2,0,0,0)
表示网格将有2行。考虑由两个相等的框组成的面板,一个顶部和一个底部。无论组件属性如何,第一个组件都将添加到网格的“顶盒”中。为了解决它,要么使网格布局具有1行(或者简单地切换到BorderLayout
并将其添加到BorderLayout.CENTER
),要么使网格布局具有3行,并且:
timePossPeriod.add(Box.createRigidArea(new Dimension(1, 1));); //first row - empty space
timePossPeriod.add(time); //2nd row, at center!
timePossPeriod.add(Box.createRigidArea(new Dimension(1, 1));); // third row - empty space