2017-01-10 21 views
-1

私はTo Do Listを作成して、ユーザーがテキストを入力できるようにしようとしています。JCheckBoxです。JFrameで列のユーザー入力からテキストを表示するにはどうすればよいですか?

しかし、何かが私の理想的な結果は、このようなものです

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

の最後の部分なしJFrameに現れるという問題点があります。

□Cleaning 
□Have Dinner with friend 

どのように修正できますか? そのコードのファイルが添付されていますので、確認してください。

enter image description here

+0

コンポーネントを間違った方法で挿入しました。 JPanelをJFrameに挿入することをお勧めします。その後、チェックボックスのコンポーネントを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); 
}  

}

p.setLayout(new FlowLayout()); 

はそうのような要素を追加します

+0

あなたの優しさをありがとう。 私はこれを書こうとします。 – Shuta

+0

ようこそ。よろしく。 – paulonep

0

あなたは、あなたはあなたが間違っているのBorderLayoutを使用した場合のような要素を追加し、GridLayoutのにあなたのJPanelのレイアウトを設定しています。

FlowLayoutのにあなたのJPanelのレイアウトを設定します。

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

私を助けてくれてありがとう、私はそれを書き込もうとします! – Shuta

関連する問題