Как закрыть рамку при использовании 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()
                                }
                            }
                        }
                    }
                }
Другие вопросы по тегам