如何在jButton的右侧添加复选框?
Posted
技术标签:
【中文标题】如何在jButton的右侧添加复选框?【英文标题】:How to add checkbox to the right side of jButton? 【发布时间】:2014-02-06 21:08:43 【问题描述】:我想在右侧创建一个带有复选框的按钮。 我试过这个,但复选框停留在按钮标签文本顶部的按钮中心。
欢迎提出任何想法。
提前致谢:
public class MainTest extends JPanel
JButton button;
JPanel panel;
public MainTest()
createComponents();
layoutComponents();
public void createComponents()
// attempting to add checkbox to button
button = new JButton("Print with Edge");
JCheckBox checkBox = new JCheckBox();
jcb.setHorizontalAlignment(SwingConstants.RIGHT);
button.add(checkBox,new BorderLayout());
panel = new JPanel(new BorderLayout());
public void layoutComponents()
panel.add(button,BorderLayout.SOUTH);
add(panel);
public static void main(String[] args)
MainTest demo = new MainTest();
JFrame frame = new JFrame();
Container cp = frame.getContentPane();
cp.add(demo);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setLocation(500, 500);
frame.setVisible(true);
【问题讨论】:
您误用“叶子”组件作为容器,不要;-) 尝试使用JToggleButton
【参考方案1】:
我想在右侧创建一个带有复选框的按钮。
也许您只想要文本右侧的复选框?
如果是这样,你可以这样做:
JCheckBox cb = new JCheckBox("Print with Edge");
cb.setHorizontalTextPosition(SwingConstants.LEADING);
【讨论】:
【参考方案2】:您可以将 JCheckBox 包装在 JPanel 中,并使 JPanel 看起来像一个按钮。例如:
public class Test
public static void main(String[] args)
JFrame frame = new JFrame();
frame.setSize(new Dimension(100, 100));
JCheckBox button = new JCheckBox();
final JPanel buttonWrapper = new JPanel();
buttonWrapper.add(new JLabel("Button Text"));
buttonWrapper.add(button);
buttonWrapper.setBorder(BorderFactory.createRaisedBevelBorder());
buttonWrapper.addMouseListener(new MouseAdapter()
@Override
public void mousePressed(MouseEvent me)
buttonWrapper.setBorder(BorderFactory.createEtchedBorder());
@Override
public void mouseReleased(MouseEvent me)
buttonWrapper.setBorder(BorderFactory.createRaisedBevelBorder());
@Override
public void mouseClicked(MouseEvent me)
System.out.println("mouse clicked");
);
JPanel mainPanel = new JPanel();
mainPanel.add(buttonWrapper);
frame.getContentPane().add(mainPanel);
frame.setVisible(true);
【讨论】:
以上是关于如何在jButton的右侧添加复选框?的主要内容,如果未能解决你的问题,请参考以下文章
如何将复选框添加到 ListActivity 而不会丢失 onListItemClick 功能?