2016-11-02 10 views
-1

JCheckBoxのリストをいくつか作成し、スクロールペインの内側に配置しようとしています。JCheckBoxのリストを作成してJScrollPaneに配置する方法

私はチェックボックスの配列を作ってJListに入れてからJScrollPaneに入れようとしましたが、メソッドのチェックボックスについての情報しか表示しませんでした。

public class MainFrame extends JFrame 
{ 
private JPanel panel = new JPanel(); 
private JScrollPane scroll; 

public MainFrame() 
{ 
    add(); 
    setTitle("Dropable checkbox"); 
    setSize(500, 500); 

    add(panel); 

    setVisible(true); 
} 

private void add() 
{ 
    String categories[] = { "Household", "Office", "Extended Family", 
      "Company (US)", "Company (World)", "Team", "Will", 
      "Birthday Card List", "High School", "Country", "Continent", 
      "Planet","KITA" }; 

    JPanel p = new JPanel(); 
    BoxLayout layout = new BoxLayout(p, BoxLayout.Y_AXIS); 
    p.setLayout(layout); 

    for (String string : categories) { 
     p.add(new JCheckBox(string)); 
    } 

    JScrollPane scroll = new JScrollPane(p); 
    panel.add(scroll); 
} 

}

これは私の画面は今

次のようになります。これは、これまでの私のコードは

enter image description here

です:

私はこのような何かを達成したいです

enter image description here

+0

Y_LAYOUTボックスを作成し、それにチェックボックスを追加することができます。 https://docs.oracle.com/javase/8/docs/api/javax/swing/Box.htmlおよびhttp://docs.oracle.com/javase/8/docs/api/javax/swing/BoxLayoutを参照してください。 .html – Chains

+0

パネルにチェックボックスを入れます。パネルをスクロールペインに配置します。 –

+0

私はY_layoutで1つのパネルを作成し、その中にすべてのチェックボックスを入れてから、そのパネルをScrollPaneに入れました。 私はそのスクロールペインをパネルに入れ、パネルにパネルを置くと、スクロールバーが表示されません。しかし、フレームに直接スクロールペインを配置すると、スクロールバーが表示されます。パネルでスクロールバーを取得する方法は? –

答えて

0

変数とメソッドの名前をJava標準に変更する必要があります。混乱していると思われるからです。

たとえば、スクロールパネルを2回作成します(上部に1回、下部に1回)。またパネルpは必要ありません。また、スクロールペインを作成する方法を作成しないでください。

作業プログラムを作成しましたが、BoxLayoutはそれほどよく分かりませんのでMigLayoutを使用しますが、その点を理解し、スクロールペインの作成方法の重要な部分を理解する必要があります。

public class MainFrame extends JFrame { 
    private JPanel panel = new JPanel(); 
    JScrollPane scroll = new JScrollPane(); 

    public MainFrame() { 
     createUI(); 
     setTitle("Dropable checkbox"); 
     setSize(300, 400); 
     setVisible(true); 
    } 

    private void createUI() { 
     String categories[] = { "Household", "Office", "Extended Family", "Company (US)", "Company (World)", "Team", 
       "Will", "Birthday Card List", "High School", "Country", "Continent", "Planet", "KITA" }; 

     setLayout(new MigLayout()); 
     panel.setLayout(new MigLayout("wrap 1")); 

     for (String string : categories) { 
      panel.add(new JCheckBox(string)); 
     } 
     scroll.setViewportView(panel); 
     add(scroll); 
    } 

    public static void main(String[] args) { 
     MainFrame mf = new MainFrame(); 
     mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     mf.setLocationRelativeTo(null); 
    } 
} 
+1

JTableHeaderなしで1つの列のみを持つJTable :-) – mKorbel

+0

@mKorbel:はい[trashgod](http://stackoverflow.com/questions/40390744/how jcheckbox-and-put-it-into-jscrollpane/40397037?noredirect = 1#comment68034699_40390744)は、このアイデアを提案しました。しかし、trashgodがこれを指摘した後、OPにコンポーネントの目的が含まれていなかったので、私は先に進み、スクロールペインとチェックボックスを使って解決策を示しました。 – hamena314

関連する問題