首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SwingBuilder改变背景色?

如何使用SwingBuilder改变背景色?
EN

Stack Overflow用户
提问于 2022-01-07 23:05:02
回答 1查看 49关注 0票数 0

我想在Groovy中使用SwingBuilder更改背景颜色。

代码语言:javascript
复制
import groovy.swing.SwingBuilder

import java.awt.BorderLayout
import java.awt.Color
import java.awt.Font

class BackgroundWork {
    static void main(String[] args) {

        def background = new Color(155, 155, 110)
        Font font = new Font("Serif", Font.SERIF, 17)
        def swing = new SwingBuilder()
        swing.edt {
            frame(title: 'Prosty edytor', size: [200, 200], show: true) {
                borderLayout()
                textArea(id: 'TextArea', lineWrap: true, wrapStyleWord: true, columns: 50, rows: 5, editable: true, background: background).setFont(font)
                button(text: 'Click me', constraints: BorderLayout.SOUTH, actionPerformed: {
                    background = java.awt.Color.RED
                })
            }
        }
    }
}

我使用的SwingBuilder与简单的框架。如何刷新数据onClick

编辑

代码语言:javascript
复制
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot set property 'background' on null object
EN

回答 1

Stack Overflow用户

发布于 2022-01-08 10:16:24

你正在替换错误的背景。如果只将背景设置为新颜色,则要将作业替换为背景,而不是文本区域的背景。

您可以通过保持创建的文本区域并在其上分配背景来更改背景。

例如。

代码语言:javascript
复制
import groovy.swing.SwingBuilder

import java.awt.BorderLayout
import java.awt.Color

class BackgroundWork {
    static void main(String[] args) {

        def background = new Color(155, 155, 110)
        def swing = new SwingBuilder()
        swing.edt {
            frame(title: 'Prosty edytor', size: [200, 200], show: true) {
                borderLayout()
                // XXX
                def ta = textArea(id: 'TextArea', lineWrap: true, wrapStyleWord: true, columns: 50, rows: 5, editable: true, background: background)
                button(text: 'Click me', constraints: BorderLayout.SOUTH, actionPerformed: {
                    // XXX
                    ta.background = java.awt.Color.RED
                })
            }
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70628122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档