2015-07-28 4 views
0

В FlowLayout, если нет места для компонентов, некоторые из них переходят к следующей строке. Есть ли способ проверить, что макет переполнен программным путем?Как проверить переполнение FlowLayout?

+0

Я думаю, вы должны думать о том, чтобы использовать другую раскладку, потому что это, как работает FlowLayout. – pzaenger

+1

Что именно вы намерены делать, если макет переполняется? (BTW - Поместите контейнер с FlowLayout в панель прокрутки, которая не требует горизонтальной полосы прокрутки и вертикальной полосы прокрутки по мере необходимости, и об этом позаботятся автоматически.) –

+0

У меня есть несколько кнопок на этой панели. если некоторые кнопки переходят ко второй строке, я скрою текст кнопки и покажу только значки. Поэтому мне нужно знать, есть ли кнопки на второй строке. –

ответ

0

Вы можете использовать ChangeListener для JScrollPane

final JScrollPane jPane = new JScrollPane(yourPanel); 
jPane.getViewport().addChangeListener(new ChangeListener() { 

    public void stateChange(ChangeEvent e) { 

     //if that is true, it means panel overflowed 
     if(jPane.getHorizontalScrollBar().isShowing()) { 

     } 
    } 

}) 
+0

Можем ли мы это сделать без 'JScrollPane'? – Arvind

+0

Я не знаю другого пути. – rdonuk

+0

Его хорошо, я вышел из любопытства ... – Arvind