2016-11-05 19 views
-1

テキストフィールドの数が多い場合は、スクロールバーを追加したい場合は、textFieldsと の動的リストを表示するウィンドウを作成しようとしています。 GridLayoutを使用しています。 問題は、Jlistを追加したパネルとscrollerが表示されないことです。リストもスクロールも表示されません。下に私のコードの一部があります。TextFieldとJScrollPaneのJListが表示されない/ Java Swing

    //Label 
       JLabel numberOfTxt = new JLabel("Please enter the number in every TextField"); 
       int n = 11; //A random number of TextFields 
       firstPanel.add(numberOfTxt, BorderLayout.NORTH); //Add label to panel 

       JList textFieldList = new JList(); //Create a list of TextFields 
       for (int i = 0; i < n; i++) { 
        //Add TextFields to list 
        JTextField textField = new JTextField(); 
        textField.setBounds(0, 0, 6, 0); 

        textFieldList.add(textField); 
        System.out.println("textFieldList" + textFieldList); 
       } 


       textFieldList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); 
       textFieldList.setLayoutOrientation(JList.HORIZONTAL_WRAP); 
       textFieldList.setVisibleRowCount(8); 

       //Create scroller 
       JScrollPane listScroller = new JScrollPane(textFieldList); 
       listScroller.setBounds(0, 20, 600, 600); 

       //Create layout for panel where the textfields will be added 
       if (n % 2 != 0) { 
        n = n + 1; 
       } 
       thirdPanel.setLayout(new GridLayout(n/2, 2, 10, 6)); 
       thirdPanel.add(textFieldList); 
       thirdPanel.setVisible(true); 

       //ContentPane has BoxLayout 
       contentPane.add(firstPanel); 
       contentPane.add(thirdPanel); 

       contentPane.repaint(); 
       window.pack(); 
      } 
      window.revalidate(); 
     } 
    }); 
+0

hh? JTextFieldをJListsに追加するべきではありません。なぜなら、これは意味をなさないからです。ここで本当に何をしようとしていますか? –

答えて

3
  1. JListこのように動作しません。 JListTextFieldsの場合、ListCellRendererを使用する必要があります(実際はそうではありません.3ページ参照)。

  2. listScrollerthirdPanelの両方にtextFieldListを追加しました。おそらく、thirdPanel.add(textFieldList);thirdPanel.add(listScroller);に置き換える必要があります。

  3. thirdPanelGridLayoutを使用しますが、コントロールは1つしか追加されません。 TextFieldthirdPanel(簡単な方法)に直接追加するか、またはJListで管理してください。

+0

まず、あなたの迅速な回答に感謝します。 3.に関しては、私はthirdpanelのレイアウトをnullにして、Jlistにgridlayoutを追加することをお勧めしますか? – TedNugent

+1

いいえ、最初に 'JList'に' TextField'を追加しないでください。これは完全なナンセンスです。 'TextField'を' thirdPanel'に直接追加してみてください。 – kgeorgiy

関連する問題