而建立 CardLayout 有 3 種方式可以進行:
(1) 由 builder 產生
import groovy.swing.SwingBuilder import java.awt.* import javax.swing.* def swing = new SwingBuilder() def cardLayout = swing.cardLayout() def thePanel swing.edt { frame ( title: "Ex", defaultCloseOperation: JFrame.EXIT_ON_CLOSE, pack: true, show: true ) { borderLayout() panel(constraints: BorderLayout.PAGE_START) { borderLayout() panel(constraints: BorderLayout.PAGE_START) { label(text: 'header') } panel(id: 'cards', constraints: BorderLayout.CENTER, layout: cardLayout).with { thePanel = it } panel(constraints: BorderLayout.PAGE_END) { label(text: 'footer') } } thePanel.add( panel(border: emptyBorder(5,5,5,5)) { label(text: 'card 1 label') }, 'card1') thePanel.add( panel(border: emptyBorder(5,5,5,5)) { label(text: 'card 2 label') }, 'card2') cardLayout.show(thePanel, 'card2') } }(2) new 產生
import groovy.swing.SwingBuilder import java.awt.* import javax.swing.* def swing = new SwingBuilder() def thePanel swing.edt { frame ( title: "Ex", defaultCloseOperation: JFrame.EXIT_ON_CLOSE, pack: true, show: true ) { borderLayout() panel(constraints: BorderLayout.PAGE_START) { borderLayout() panel(constraints: BorderLayout.PAGE_START) { label(text: 'header') } panel(id: 'cards', constraints: BorderLayout.CENTER, layout: new CardLayout()).with { thePanel = it } panel(constraints: BorderLayout.PAGE_END) { label(text: 'footer') } } thePanel.add( panel(border: emptyBorder(5,5,5,5)) { label(text: 'card 1 label') }, 'card1') thePanel.add( panel(border: emptyBorder(5,5,5,5)) { label(text: 'card 2 label') }, 'card2') thePanel.getLayout().show(thePanel, 'card2') } }(3) 由 container 進行 setLayout()
import groovy.swing.SwingBuilder import java.awt.* import javax.swing.* def swing = new SwingBuilder() def cardLayout def thePanel swing.edt { frame ( title: "Ex", defaultCloseOperation: JFrame.EXIT_ON_CLOSE, pack: true, show: true ) { borderLayout() panel(constraints: BorderLayout.PAGE_START) { borderLayout() panel(constraints: BorderLayout.PAGE_START) { label(text: 'header') } panel(id: 'cards', constraints: BorderLayout.CENTER).with { setLayout(cardLayout = new CardLayout()) thePanel = it } panel(constraints: BorderLayout.PAGE_END) { label(text: 'footer') } } thePanel.add( panel(border: emptyBorder(5,5,5,5)) { label(text: 'card 1 label') }, 'card1') thePanel.add( panel(border: emptyBorder(5,5,5,5)) { label(text: 'card 2 label') }, 'card2') cardLayout.show(thePanel, 'card2') } }ps. groovy 版本 v2.0.7
沒有留言:
張貼留言