paintingbynumbers.groovy

来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 50 行

GROOVY
50
字号
/** 
 *  simple patchwork graphics demo
 * @author: Jeremy Rayner, changes by Dierk Koenig
 */

def width = 500; def height = 400; def blockSize = 10
def g = createGraphics()

// main loop
while (true) {
    drawBlock()
}

// --------------------------------------------------

// random integer
def rnd(upperBound){
    (int)(Math.random() * upperBound)
}

// draw a random coloured square within bounds
def drawBlock() {
    def row    = rnd(height / blockSize)
    def column = rnd(width  / blockSize)
    def colour = new java.awt.Color(rnd(255),rnd(255),rnd(255))
    g.setColor(colour)
    g.fillRect(column * blockSize, row * blockSize, blockSize, blockSize)
}


// create a new frame and clear screen
def createGraphics() {
    def frame = new groovy.swing.SwingBuilder().
              frame(title:'Painting by numbers', 
                    location:[20,20], 
                    size:[width,height],
                    defaultCloseOperation:javax.swing.WindowConstants.EXIT_ON_CLOSE) {
    }
    frame.show()
              
    // obtain graphics context
    def gfx = frame.getGraphics()
              
    // clear screen
    gfx.setColor(java.awt.Color.BLACK)
    gfx.fillRect(0,0,width,height)

    return gfx
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?