Как использовать Groovy SwingBuilder для создания комбинации JDesktopPand/JInternalFrame?

Я пытаюсь создать приложение Groovy MDI с помощью SwingBuilder.

Я начал с базового примера SwingBuilder по адресу http://groovy-lang.org/swing.html и добавлены вызовы desktopPane и internalFrame:

import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL

count = 0
new SwingBuilder().edt {
  frame(title: 'Frame', size: [300, 300], show: true) {
    desktopPane() {
      internalFrame() {
        borderLayout()
        textlabel = label(text: 'Click the button!', constraints: BL.NORTH)
        button(text:'Click Me',
             actionPerformed: {count++; textlabel.text = "Clicked ${count} time(s)."; println "clicked"}, constraints:BL.SOUTH)
      }
    }
  }
}

Однако этот код дает мне только пустое окно.


person spierepf    schedule 20.03.2018    source источник


Ответы (1)


Похоже, мне просто нужно было добавить параметры visible и bounds к internalFrame

import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL

count = 0
new SwingBuilder().edt {
  frame(title: 'Frame', size: [300, 300], show: true) {
    desktopPane() {
      internalFrame(visible: true, bounds: [25, 25, 200, 100]) {
        borderLayout()
        textlabel = label(text: 'Click the button!', constraints: BL.NORTH)
        button(text:'Click Me',
             actionPerformed: {count++; textlabel.text = "Clicked ${count} time(s)."; println "clicked"}, constraints:BL.SOUTH)
      }
    }
  }
}
person spierepf    schedule 21.03.2018