2017-11-06 3 views
1

新しいコンポーネントを追加すると、スクロールペインが更新されません。 新しいJScrollPaneを作成せずに更新できますか?(JAVA)新しいコンポーネントを追加するときにスクロールする方法は?

public void start(){ 
     getBox_Topics().setBorder(new TitledBorder(new EtchedBorder(),"Topics of vote")); 
     add(new JScrollPane(getBox_Topics(), 
       JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
       JScrollPane.HORIZONTAL_SCROLLBAR_NEVER)); 
     pack(); 
     setHandler(new ClientHandler_Thread(this)); 
     getHandler().start(); 
     setVisible(true); 
    } 

ボタンがボックスに新しいコンポーネントを追加します。

enter image description here

+1

ここで、コンポーネントを追加する部分はありますか? – Berger

+0

@Berger JScrollPaneを含まないこのクラスの遠方 –

+1

追加されたコンポーネントを含むパネルで 'revalidate()'を呼び出してみてください。 – Berger

答えて

0

ボックス/ JPanelの必見は固定サイズです。 またはMaximumSizeが必要です。

public void start(){ 
    getBox_Topics().setBorder(new TitledBorder(new EtchedBorder(),"Topics of vote")); 
    setScrollPane(new JScrollPane(getBox_Topics())); 
    add(getScrollPane()); 
    getScrollPane().setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); 
    getBox_Topics().addContainerListener(new ContainerListener() { 
     @Override 
     public void componentAdded(ContainerEvent containerEvent) { 
      getScrollPane().revalidate(); 
      getScrollPane().repaint(); 
     } 

     @Override 
     public void componentRemoved(ContainerEvent containerEvent) { 

     } 
    }); 
    pack(); 
    setHandler(new ClientHandler_Thread(this)); 
    getHandler().start(); 
    setVisible(true); 
} 
関連する問題