2012-04-12 22 views
1

JPanelを継承するクラスがあります。以下のコード:継承JPanelにJScrollPaneが表示されない

public class Test extends JPanel implements Testnterface { 
    private JScrollPane listScroller; 

    DefaultListModel model; 
    private JList requestList;  
    public Test() { 

     String title = "Stackoverflow Question"; 
     setBorder(BorderFactory.createTitledBorder(title)); 
     model = new DefaultListModel(); 
    requestList = new JList(); // create a list 
     listScroller = new JScrollPane(requestList); // create a scrollbar to the list 
     listScroller.setPreferredSize(new Dimension(250, 80)); 

     setLayout(null); 
     add(listScroller); // even though I add the scrollPane, nothing is displayed 
    } 
} 

私はコードを更新しました。 JPanelにJScrollPaneを追加しても表示されないようです。誰もがアイデアを持っていますか?

+0

'setLayoutの(NULL);'これはほぼ確実に問題の一部です。あなたがSSCCEを投稿するときには、さらに詳しく調べてみましょう。 –

+0

setLayout(null)を使用するので、デザインビルダを使用してコンポーネントをグラフィカルにカスタマイズできます。 –

+1

* "setLayout(null)が使用されているので、私は.."できるだけ早くGUIを実行してください。 ***レイアウトを使用する!***脇に、ほとんどの 'デザインビルダー'はサポートレイアウトを使用する価値があります。 –

答えて

3

私は同じ問題を持っていたとのJPanelでスクロールペインをラップすることによってそれを解決:

final JScrollPane jScrollPane = new JScrollPane(list, 
    JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, 
    JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 

final JPanel panel = new JPanel(new BorderLayout(BORDER_SIZE, BORDER_SIZE)); 
panel.setBorder(BorderFactory.createEmptyBorder(BORDER_SIZE, BORDER_SIZE, 
     BORDER_SIZE, BORDER_SIZE)); 

panel.add(jScrollPane); 
関連する問題