如何水平居中 JSpinner
How to horizontally center JSpinner
我搜索了网站,但找不到我要找的东西。我试过JSpinner的setAlignmentX(JSpinner.CENTER_ALIGNMENT)
方法,也试过设置preferred width为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 会将组件增长到 space 可用。为了防止旋转器变大,您需要控制最大尺寸:
JSpinner spinner=new JSpinner()
{
@Override
public Dimension getMaximumSize()
{
return getPreferredSize();
}
};
您不需要设置对齐方式,因为微调器的默认对齐方式是居中对齐。
//spinner.setPreferredSize(preferredSize);
请注意,控制首选大小不是一个好主意。让每个LAF决定合适的尺寸。
我搜索了网站,但找不到我要找的东西。我试过JSpinner的setAlignmentX(JSpinner.CENTER_ALIGNMENT)
方法,也试过设置preferred width为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 会将组件增长到 space 可用。为了防止旋转器变大,您需要控制最大尺寸:
JSpinner spinner=new JSpinner()
{
@Override
public Dimension getMaximumSize()
{
return getPreferredSize();
}
};
您不需要设置对齐方式,因为微调器的默认对齐方式是居中对齐。
//spinner.setPreferredSize(preferredSize);
请注意,控制首选大小不是一个好主意。让每个LAF决定合适的尺寸。