Как передать параметры конструктора, используя конструктор, такой как 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; возможно попробую это.