当前位置:K88软件开发文章中心编程语言JavaGroovy → 文章内容

Groovy 构建器

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-15 15:50:02

由 lichiabor 创建,小路依依 最后一次修改 2016-12-12 在软件开发过程中,有时开发人员花费大量时间来创建数据结构,域类,XML,GUI布局,输出流等。有时用于创建这些特定需求的代码导致在许多地方重复相同的代码片段。这是Groovy的建设者发挥作用。Groovy有可以用来创建标准对象和结构的构建器。这些构建器节省了时间,因为开发人员不需要编写自己的代码来创建这些构建器。在本章的教程中,我们将看看groovy中可用的不同构建器。Swing 构建器在groovy中,还可以使用groovy中提供的swing构建器创建图形用户界面。开发swing组件的主要类是SwingBuilder类。这个类有许多方法创建图形组件,如 - JFrame - 这是用于创建框架元素。 JTextField - 这用于创建textfield组件。让我们看一个简单的例子,如何使用SwingBuilder类创建一个Swing应用程序。在以下示例中,您可以看到以下几点 - 您需要导入groovy.swing.SwingBuilder和javax.swing.*类。在Swing应用程序中显示的所有组件都是SwingBuilder类的一部分。对于框架本身,您可以指定框架的初始位置和大小。您还可以指定框架的标题。您需要将Visibility属性设置为true才能显示框架。import groovy.swing.SwingBuilder import javax.swing.* // Create a builder def myapp = new SwingBuilder()// Compose the builder def myframe = myapp.frame(title : 'Tutorials Point', location : [200, 200], size : [400, 300], defaultCloseOperation : WindowConstants.EXIT_ON_CLOSE { label(text : 'Hello world') } // The following statement is used for displaying the form frame.setVisible(true)上述程序的输出如下。以下输出显示JFrame以及带有Hello World文本的JLabel。让我们看看下一个用文本框创建输入屏幕的例子。在以下示例中,我们要创建一个包含学生姓名,主题和学校名称文本框的表单。在以下示例中,您可以看到以下要点 - 我们正在为屏幕上的控件定义一个布局。在这种情况下,我们使用网格布局。我们正在为我们的标签使用对齐属性。我们使用textField方法在屏幕上显示文本框。import groovy.swing.SwingBuilder import javax.swing.* import java.awt.* // Create a builder def myapp = new SwingBuilder() // Compose the builder def myframe = myapp.frame(title : 'Tutorials Point', location : [200, 200], size : [400, 300], defaultCloseOperation : WindowConstants.EXIT_ON_CLOSE) { panel(layout: new GridLayout(3, 2, 5, 5)) { label(text : 'Student Name:', horizontalAlignment : JLabel.RIGHT) textField(text : '', columns : 10) label(text : 'Subject Name:', horizontalAlignment : JLabel.RIGHT) textField(text : '', columns : 10) label(text : 'School Name:', horizontalAlignment : JLabel.RIGHT) textField(text : '', columns : 10) } } // The following statement is used for displaying the form myframe.setVisible(true)以上程序的输出如下 - 事件处理程序现在让我们看看事件处理程序。事件处理程序用于按钮,当按下按钮时执行某种处理。每个按钮伪方法调用包括actionPerformed参数。这表示呈现为闭包的代码块。让我们来看看我们下一个用2个按钮创建屏幕的例子。当按下任一按钮时,相应的消息被发送到控制台屏幕。在以下示例中,您可以看到以下要点 - 对于定义的每个按钮,我们使用actionPerformed方法并定义一个闭包,以便在单击按钮时向控制台发送一些输出。import groovy.swing.SwingBuilder import javax.swing.* import java.awt.* def myapp = new SwingBuilder() def buttonPanel = { myapp.panel(constraints : BorderLayout.SOUTH) { button(text : 'Option A', actionPerformed : { println 'Option A chosen' }) button(text : 'Option B', actionPerformed : { println 'Option B chosen' }) }} def mainPanel = { myapp.panel(layout : new BorderLayout()) { label(text : 'Which Option do you want', horizontalAlignment : JLabel.CENTER, constraints : BorderLayout.CENTER) buttonPanel() }} def myframe = myapp.frame(title : 'Tutorials Point', location : [100, 100], size : [400, 300], defaultCloseOperation : WindowConstants.EXIT_ON_CLOSE){ mainPanel() }myframe.setVisible(true)上述程序的输出如下。单击任一按钮时,所需的消息将发送到控制台日志屏幕。上述示例的另一个变体是定义可以充当处理程序的方法。在下面的例子中,我们定义了DisplayA和DisplayB的2个处理程序。import groovy.swing.SwingBuilder import javax.swing.* import java.awt.* def myapp = new SwingBuilder() def DisplayA = { println("Option A") } def DisplayB = { println("Option B")}def buttonPanel = { myapp.panel(constraints : BorderLayout.SOUTH) { button(text : 'Option A', actionPerformed : DisplayA) button(text : 'Option B', actionPerformed : DisplayB) }} def mainPanel = { myapp.panel(layout : new BorderLayout()) { label(text : 'Which Option do you want', horizontalAlignment : JLabel.CENTER, constraints : BorderLayout.CENTER) buttonPanel() }} def myframe = myapp.frame(title : 'Tutorials Point', location : [100, 100], size : [400, 300], defaultCloseOperation : WindowConstants.EXIT_ON_CLOSE) { mainPanel() } myframe.setVisible(true) 上述程序的输出将保持与前面的示例相同。 DOM生成器 DOM构建器可用于解析HTML,XHTML和XML,并将其转换为W3C DOM树。以下示例显示如何使用DOM构建器。String records = ''' <library> <Student> <StudentName division = 'A'>Joe</StudentName> <StudentID>1</StudentID> </Student> <Student> <StudentName division = 'B'>John</StudentNam

[1] [2]  下一页


Groovy 构建器