2012-03-15 4 views
3

с JPanel, определенной ниже (встроенной в JTabPanel в Панели с разделителем):MigLayout Термоусадочного Поведение

Если я максимально, панель правильно перерисовываются к новым размерам Если я минимизировать панель не перерисовываются к предыдущему размеры Если я тащу за угол, чтобы увеличить размер панели перерисовывается, чтобы исправить размеры Если я перетащить угол, чтобы уменьшить размер панели не перерисовывается с ожидаемыми размерами

container.setLayout(new MigLayout("debug,fillx,wrap 5", 
    "[75:75:75][fill][75:75:75][fill][140:140:140,align left]")); 
container.add(labelSrcTitle, "span 4"); 
container.add(buttonAddRef, ""); 
container.add(srcTitle, "span"); 
container.add(srcListing, "span,grow"); 
container.add(sepRef,"span,growx"); 
container.add(refTitle,"span"); 
container.add(refListing,"span 4,grow"); 
container.add(buttonEdit,"split 2"); 
container.add(buttonDelete,""); 
container.add(name,"span 4,growx"); 
container.add(buttonSEdit,"split 3"); 
container.add(buttonSDelete); 
container.add(buttonSAdd,""); 
container.add(lType,""); 
container.add(lClaim,"grow"); 
container.add(lQual,""); 
container.add(lNotes,"grow"); 
container.add(buttonCEdit, "split 3"); 
container.add(buttonCDelete); 
container.add(buttonCAdd, ""); 

Я хотел (и ожидать) что если я максимизирую, то скрою, экран будет перерисовываться до первоначальной конфигурации. что мне не хватает? Если это имеет значение, все поля JTextArea являются переносом строки true.

Отредактировано:

Вот гораздо более простой пример - проблема, как представляется, с JTextArea с установленным на перенос строк. Следующий код в JFrame воссоздает проблему:

JPanel root = new JPanel(new MigLayout("fill,debug")); 
    JTextArea t = new JTextArea(); 

    t.setLineWrap(true); 

    root.add(t,"growx"); 
    setContentPane(root); 
    setLocationRelativeTo(null); 
    setSize(200, 200); 
+0

Я бы предположил, что компонент «name» (говорит «Michaels, Edward») выталкивая все по какой-то причине. Посмотрите, как он заполняет свою ячейку, когда другие компоненты «span 4» не работают? Попробуйте вырвать это выражение и посмотреть, какая разница. В зависимости от версии, которую вы получили, push/grow ведут себя немного странно по моему опыту. Я понимаю, что «fill» в строке spec соответствует «push» в спецификации ячейки. Может быть, это что-то вроде этого: http://stackoverflow.com/questions/2475787/miglayout-jtextarea-is-not-shrinking-when-used-with-linewrap-true/2739127#2739127 – Jim

+0

Проблема решена. После определения проблемы с JTextArea и Line Wrap, я определил, что это был признак MigLayout и JTextArea, задокументированных в нескольких местах; и разрешил его, изменив root.add (t, «growx») на root.add (t, «growx, wmin 10») – ed4becky

ответ

2

Проблема решена. После определения проблемы с JTextArea и Line Wrap я определил, что это был признак переноса MigLayout и JTextArea Line в несколько мест; и разрешил его, изменив root.add (t, «growx») на root.add (t, «growx, wmin 10»)

+0

В моем случае это «JLabel» с текстом html, чтобы включить автоматическую упаковку внутри метки. Он не может рассчитать правильную длину и всегда занимает всю ширину. Добавление компонента с фиксированным ('w 200!')/Правильным предпочтительным размером ('w: 200:') решило проблему. – FaithReaper