setVerticalAlignment()有问题

问题描述 投票:0回答:1

[请参阅附件图像,我试图获取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);
java swing user-interface awt
1个回答
0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.