Как передать параметры конструктора, используя конструктор, такой как SwingBuilder?

Я хочу получить доступ к JFrame(GraphicsConfiguration) с помощью SwingBuilder.frame(), но не могу установить его через атрибуты, поскольку он недоступен. Как передать параметры конструктора с помощью Groovy Builders?

ОБНОВЛЕНИЕ: По запросу, включая решение. Параметр value для метода FrameFactory.newInstance(builder, name, value, attrs) сначала проверяется, чтобы убедиться, что это сам JFrame. Если нет, он игнорируется, и создается новый JFrame. Затем он передается методу post-init для обработки атрибутов.

Это соответствует следующему синтаксису:

builder.name(value, attrs){}

где attrs - ваша карта атрибутов в стандартном формате ключ: значение.

Итак, чтобы закончить с примером:


SwingBuilder swing = new SwingBuilder()
// pass the title to the valueFrame, even though we can pass as attr, for the example
JFrame valueFrame = new JFrame("Value Frame Title")
JFrame myFrame = swing.frame(valueFrame, 
                             pack:true, 
                             defaultCloseOperation:JFrame.DISPOSE_ON_CLOSE) {
  ... add your panels, etc here
}
assert myFrame == valueFrame

1 ответ

Решение

Вы должны иметь возможность передавать JFrame в качестве аргумента значения, в соответствии с документацией SwingBuilder.frame; возможно попробую это.

Другие вопросы по тегам