我已经找了一段时间了,但是找不到解决办法,所以我决定在这里问。
我正在使用Java实现我的gui计算器。我有定制的布局(这是正确的工作100%)。我已经添加了所有的按钮,所有按钮的位置都是正确的,始终如此。我插入的最后一个组件是"Inv“,它是复选框,我找不到一种方法将它集中在它的区域内。我试过把它放在面板中,在面板中使用borderlayout.center,设置水平和垂直的文本对齐方式,但是没有任何效果。
invert = new JCheckBox("Inv");
invert.setBackground(Color.decode("#8DA336"));
invert.addActionListener(new CommandListener(this,"invert"));
container.add(invert, new RCPosition(5, 7));这个RCPosition不过是一个对象,它说明这个组件在哪一行和哪列(这没有错)。

发布于 2017-05-10 12:06:19
复选框默认为左对齐。试着使其中心对齐:
invert = new JCheckBox("Inv");
invert.setHorizontalAlignment(SwingConstants.CENTER);
// styling and add to container如果没有帮助,那么您应该发布您的布局管理器。
发布于 2017-05-10 12:14:21
您可以尝试将其放入带有JPanel的BoxLayout中,然后在左侧和右侧添加水平胶水。
final JFrame frame = new JFrame();
final JPanel jp = new JPanel();
jp.setLayout(new BoxLayout(jp, BoxLayout.X_AXIS));
jp.add(Box.createHorizontalGlue());
final JCheckBox jcb = new JCheckBox("inv");
jp.add(jcb);
jp.add(Box.createHorizontalGlue());
frame.getContentPane().add(jp);
frame.pack();
frame.setLocationRelativeTo(null);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
frame.setVisible(true);
}
});这只是一种方法,setHorizontalAlignment也应该能工作。
https://stackoverflow.com/questions/43891495
复制相似问题