2015-09-14 29 views
1

我有两个JCheckBox的和一个JEditorPane。我要寻找的输出作为下如何使两个复选框在Swing中彼此相邻?

enter image description here

但我当前的代码是有点乱对此我不能

private void createContents() 
    {  
    JEditorPane license; 
    JCheckBox confirmBox; 
    JCheckBox declineBox; 

    license = new JEditorPane("text/html", ""); 
    license.setText (buildEulaText()); 
    license.setEditable(false); 
    confirmBox = new JCheckBox("I accept.", false); 
    declineBox = new JCheckBox("I decline.", false); 
    add(license, BorderLayout.CENTER); 
    add(confirmBox, BorderLayout.SOUTH); 
    add(declineBox, BorderLayout.NORTH); //I know this is wrong 
    } 

需要帮助。 在此先感谢。

+5

注意:这些应该是单选按钮,而不是复选框。或者一个复选框会做(检查是“我接受”,而不是检查是“我拒绝”)。使用两个复选框意味着您允许用户同时接受和拒绝。 – RealSkeptic

+0

@RealSkeptic,我接受了我的错误并更正了它。它是单选按钮。谢谢 –

回答

2

一个简单的解决方案是使用新的JPanelFlowLayout组成布局。

add(license, BorderLayout.CENTER); 
JPanel boxes = new JPanel(new FlowLayout()); 
// FlowLayout is the JPanel default layout manager, so 
// boxes = new JPanel(); works too :) 
boxes.add(confirmBox); 
boxes.add(declineBox); 
add(boxes, BorderLayout.SOUTH); 

但你也可以看看GridBagLayout

1

创建一个新的JPanel来保存所有复选框,然后将其添加到面板/框架中。

JPanel checkBoxesPane = new Panel(); 

checkBoxesPane.add(confirmBox); 
checkBoxesPane.add(declineBox); 

add(checkBoxes, BorderLayout.SOUTH); 
1

首先,我会强烈建议在javafx而不是Java swing中做到这一点。根据我的意见,这是后来的技术,更好。

如果您仍然想这样做在Java中摆动,这里是代码:

JPanel panel = new Panel(); 
panel.add(confirmBox); 
panel.add(declineBox); 
add(panel, BorderLayout.SOUTH); 

我没有测试的代码,但它应该与此代码工作。