2017-01-10 55 views
-1

我想创建待办事项列表,允许用户输入文字到JCheckBox如何在JFrame上显示用户输入的文字?

但对JFrame任何事物的不用的

getContentPane().add(checkBox3,BorderLayout.EAST);. 

我的理想结果最后一个问题是这样的。

□Cleaning 
□Have Dinner with friend 

我该如何解决它? 我附上了该代码的文件,所以请检查它。

enter image description here

+0

您以错误的方式插入了您的组件。好的做法是将JPanel插入到JFrame中。之后,将checkBox组件添加到JPanel – Andrew

回答

0

遵循示例代码....

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

}

+0

谢谢你的好意。 我会尽力写这个。 – Shuta

+0

欢迎您。问候。 – paulonep

0

你已经设置你JPanel的布局网格布局,然后就像如果你使用BorderLayout的这是错误的添加元素。

设置你JPanel的布局,以的FlowLayout

p.setLayout(new FlowLayout()); 

添加元素,像这样:

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

非常感谢您的帮助,我会尽力写出来! – Shuta

相关问题