Как закрыть рамку при использовании Swingbuilder?
С помощью Swovbuilder в Groovy я хотел бы добавить кнопку сохранения и выхода, но не могу понять, как закрыть кадр с помощью Swilbuilder? Поскольку у меня нет назначенного фрейма для объекта, я не могу на самом деле сделать frame.dispose() или что-то в этом роде.
swingBuilder.edt {
frame(title: 'Calc Spell Checker', size: [800, 600],
show: true, locationRelativeTo: null,
defaultCloseOperation: 1) {
borderLayout(vgap: 5)
panel(constraints: BorderLayout.CENTER,
border: compoundBorder([emptyBorder(10), titledBorder("Spell Checking pole ${projProp.location} in project ${projProp.projectName}")])) {
tableLayout {
tr {
td {
label 'Comments: '
}
td {
scrollPane(verticalScrollBarPolicy:JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) {
list listData: projProp.comments, fixedCellWidth: 600, visibleRowCount: 6
}
}
}
tr {
td {
label 'Suggestions: '
}
}
tr {
td {
button text: 'Replace'
}
td {
button text: 'Ignore'
}
td {
button text: 'Close', actionPerformed: {
f.SetVisible(false)
}
}
}
}
}
}
}
1 ответ
Итак, чтобы сделать это, оказывается, что вам просто нужно установить переменную в фрейме в фрейме, а затем вызвать dispose() для него следующим образом:
guiFrame = frame(title: 'Spell Checker', size: [800, 600],
show: true, locationRelativeTo: null,
defaultCloseOperation: 1) {
int commentIndex = 0
int remedyIndex = 0
borderLayout(vgap: 5)
panel(constraints: BorderLayout.CENTER,
border: compoundBorder([emptyBorder(10), titledBorder("Spell Checking pole ${projProp.location} in project ${projProp.projectName}")])) {
tableLayout {
tr {
td {
button text: 'Replace'
}
td {
button text: 'Ignore'
}
td {
button text: 'Close', actionPerformed: {
guiFrame.dispose()
}
}
}
}
}