首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JCheckBox中心

JCheckBox中心
EN

Stack Overflow用户
提问于 2017-05-10 11:42:03
回答 2查看 915关注 0票数 1

我已经找了一段时间了,但是找不到解决办法,所以我决定在这里问。

我正在使用Java实现我的gui计算器。我有定制的布局(这是正确的工作100%)。我已经添加了所有的按钮,所有按钮的位置都是正确的,始终如此。我插入的最后一个组件是"Inv“,它是复选框,我找不到一种方法将它集中在它的区域内。我试过把它放在面板中,在面板中使用borderlayout.center,设置水平和垂直的文本对齐方式,但是没有任何效果。

代码语言:javascript
复制
invert = new JCheckBox("Inv");

invert.setBackground(Color.decode("#8DA336"));
invert.addActionListener(new CommandListener(this,"invert"));

container.add(invert, new RCPosition(5, 7));

这个RCPosition不过是一个对象,它说明这个组件在哪一行和哪列(这没有错)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-10 12:06:19

复选框默认为左对齐。试着使其中心对齐:

代码语言:javascript
复制
invert = new JCheckBox("Inv");
invert.setHorizontalAlignment(SwingConstants.CENTER);
// styling and add to container

如果没有帮助,那么您应该发布您的布局管理器。

票数 2
EN

Stack Overflow用户

发布于 2017-05-10 12:14:21

您可以尝试将其放入带有JPanelBoxLayout中,然后在左侧和右侧添加水平胶水。

代码语言:javascript
复制
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也应该能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43891495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档