gpt4 book ai didi

java - 如何在jButton右侧添加复选框?

转载 作者:行者123 更新时间:2023-12-01 23:16:02 25 4
gpt4 key购买 nike

我想创建一个右侧带有复选框的按钮。我尝试了此操作,但复选框保留在按钮标签文本顶部的按钮中心。

欢迎任何想法。

提前致谢:

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);
}
}

最佳答案

您可以将 JCheckBox 包装在 JPanel 内,并使 JPanel 看起来像一个按钮。例如:

enter image description here

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);
}

}

关于java - 如何在jButton右侧添加复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21187552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com