[英]How to horizontally center JSpinner
我搜索了该网站,但找不到我想要的东西。 我尝试了setAlignmentX(JSpinner.CENTER_ALIGNMENT)
的setAlignmentX(JSpinner.CENTER_ALIGNMENT)
方法,还尝试将首选宽度设置为10,但是它不起作用。 我希望JSpinners在Jpanel上水平居中。
这是我的代码:
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
JSpinner[] spinners = new JSpinner[10];
for (int i = 0; i < spinners.length; i++) {
spinners[i] = WidgetFactory.createJSpinnerAndAddToPanel(panel);
}
frame.add(panel, BorderLayout.CENTER);
及其WidgetFactory:
public static JSpinner createJSpinnerAndAddToPanel(JPanel panel) {
JSpinner spinner = new JSpinner();
Dimension preferredSize = spinner.getPreferredSize();
preferredSize.width = 10;
spinner.setPreferredSize(preferredSize);
spinner.setAlignmentX(JSpinner.CENTER_ALIGNMENT);
panel.add(spinner);
return spinner;
}
这是我得到的:
BoxLayout将组件增加到可用空间。 为了防止微调框增长,您需要控制最大尺寸:
JSpinner spinner=new JSpinner()
{
@Override
public Dimension getMaximumSize()
{
return getPreferredSize();
}
};
您不需要设置对齐方式,因为默认设置为微调器的中心对齐方式。
//spinner.setPreferredSize(preferredSize);
注意,控制首选大小不是一个好主意。 让每个LAF确定适当的大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.