我如何能够使用 JFrame 在列上显示用户输入的文本?

How am I able to show text from user input on column with JFrame?

我正在尝试创建允许用户输入文本到 JCheckBox 的待办事项列表。

但是有一个问题,JFrame 上的任何内容都没有

的最后一部分
getContentPane().add(checkBox3,BorderLayout.EAST);.

我理想中的结果是这样的

□Cleaning
□Have Dinner with friend

我该如何修复它? 我附上了那个代码的文件,所以请检查它。

您已将 JPanel 布局设置为 GridLayout,然后添加元素,如果您使用 BorderLayout,这是错误的。

将 Jpanel 的布局设置为 FlowLayout :

p.setLayout(new FlowLayout());

像这样添加元素:

getContentPane().add(checkBox1);
getContentPane().add(checkBox2);
getContentPane().add(checkBox3);

遵循示例代码....

public class FrameTest extends JFrame{

private JCheckBox jb1;
private JCheckBox jb2;
private JCheckBox jb3;
private JCheckBox jb4;
private JCheckBox jb5;
private JPanel jPanel1;

/**
 * Creates new form CheckBoxDinamico
 */
public FrameTest() {

    setLayout(new GridBagLayout());
    setPreferredSize(new Dimension(800, 600));
    jPanel1 = new JPanel();
    jPanel1.setLayout(new FlowLayout());
    add(jPanel1);

    jb1 = new JCheckBox("Cleaning");
    jb2 = new JCheckBox("Have dinner with friend");
    jb3 = new JCheckBox("Go sleep by 11pm");
    jb4 = new JCheckBox("Wake Up by 6am");
    jb5 = new JCheckBox();

    try {

        if(jb5.getText() == null || "".equals(jb5.getText())){
            jb5.setText(new Scanner(System.in).nextLine());
        }
        jPanel1.add(jb1);
        jPanel1.add(jb2);
        jPanel1.add(jb3);
        jPanel1.add(jb4);
        jPanel1.add(jb5);
    } catch (Exception e) {
    }
   pack();
} 

public static void main(String args[]) {
    new FrameTest().setVisible(true);
}    

}