跳转至

JRuby Swing 简介

原文: http://zetcode.com/gui/jrubyswing/introduction/

在 JRuby Swing 教程的这一部分中,我们将介绍 Swing 工具包并使用 JRuby 编程语言创建第一个程序。

本教程的目的是让您开始使用 JRuby 语言的 Swing 工具包。 可以在此处下载本教程中使用的图像。 我使用了 Gnome 项目的 Tango 图标包中的一些图标。

关于

Swing 库是 Java 编程语言的官方 Java GUI 工具箱。 它用于使用 Java 创建图形用户界面。 Swing 是一个高级 GUI 工具箱。 它具有丰富的组件集。 从基本的按钮,标签,滚动条到高级的组件(例如树和表格)。 Swing 本身是用 Java 编写的。 Swing 也可用于其他语言。 例如,JRuby,Jython,Groovy 或 Scala。

JRuby 是 Ruby 编程语言的 Java 实现。 JRuby 可以导入任何 Java 类。

执行本教程中的示例有两种基本方法。 一种方法是安装 Ruby NetBeans 插件。 它还包含 JRuby。 创建新的 Ruby 项目时,请确保选择 JRuby 平台。

另一种方法是从 jruby.org 网站下载发行版。

$ tar -xzvf jruby-bin-1.5.6.tar.gz
$ mv jruby-1.5.6/ ~/bin

安装 JRuby 非常容易。 我们提取压缩档案的内容,然后将目录移动到选定位置。 在我的系统上,我已将目录移到主目录的 bin 目录中。

$ ~/bin/jdk1.6.0_21/bin/java -jar ~/bin/jruby-1.5.6/lib/jruby.jar simple.rb

我们已经在选定目录中安装了 JRuby。 在lib子目录中,我们将找到jruby.jar文件,该文件用于执行 JRuby 脚本。

$ cat /usr/local/bin/jruby 
#!/bin/bash

~/bin/jdk1.6.0_21/bin/java -jar ~/bin/jruby-1.5.6/lib/jruby.jar $1

(可选)我们可以创建一个 bash 文件,该文件将自动启动我们的 JRuby 脚本。 然后,我们可以将#!/usr/local/bin/jruby路径放入脚本。

简单的例子

在第一个示例中,我们将在屏幕上显示一个基本窗口。

#!/usr/local/bin/jruby

# ZetCode JRuby Swing tutorial
# 
# This example shows a simple
# window in the center of the screen.
# 
# author: Jan Bodnar
# website: www.zetcode.com
# last modified: December 2010

include Java

import javax.swing.JFrame

class Example < JFrame

    def initialize
        super "Simple"

        self.initUI
    end

    def initUI

        self.setSize 300, 200
        self.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
        self.setLocationRelativeTo nil
        self.setVisible true
    end
end

Example.new

尽管这段代码很小,但是应用窗口可以做很多事情。 可以调整大小,最大化,最小化。 随之而来的所有复杂性对应用员都是隐藏的。

include Java

我们将 Java API 包含在 JRuby 中。

import javax.swing.JFrame

我们导入一个JFrame类。 JFrame是带有标题栏和边框的顶层窗口。

self.initUI

我们将用户界面的创建委托给initUI方法。

self.setSize 300, 200

我们设置窗口的大小。

self.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE

如果单击标题栏的关闭按钮,此方法可确保窗口终止。 默认情况下,没有任何反应。

self.setLocationRelativeTo nil

我们将窗口置于屏幕中央。

self.setVisible true

最后,窗口显示在屏幕上。

工具提示

工具提示是一个小的矩形窗口,它提供有关对象的简短信息。 它通常是一个 GUI 组件。 它是应用帮助系统的一部分。

#!/usr/local/bin/jruby

# ZetCode JRuby Swing tutorial
# 
# This code shows a tooltip on
# a window and a button
# 
# author: Jan Bodnar
# website: www.zetcode.com
# last modified: December 2010

include Java

import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JPanel

class Example < JFrame

    def initialize
        super "Tooltips"

        self.initUI
    end

    def initUI

        panel = JPanel.new
        self.getContentPane.add panel

        panel.setLayout nil 
        panel.setToolTipText "A Panel container"

        button = JButton.new "Button"
        button.setBounds 100, 60, 100, 30
        button.setToolTipText "A button component"

        panel.add button

        self.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
        self.setSize 300, 200
        self.setLocationRelativeTo nil
        self.setVisible true
    end

end

Example.new

在示例中,我们为框架和按钮设置工具提示。

panel = JPanel.new
self.getContentPane.add panel

我们创建一个JPanel组件。 它是一个通用的轻量级容器。 JFrame有一个区域,您可以在其中放置名为内容窗格的组件。 我们将面板放入此窗格。

panel.setLayout nil 

默认情况下,JPanel具有一个FlowLayout管理器。 布局管理器用于将小部件放置在容器上。 如果我们调用setLayout nil,则可以绝对定位组件。 为此,我们使用setBounds方法。

panel.setToolTipText "A Panel container"

要启用工具提示,我们调用setTooltipText方法。

Tooltip

图:工具提示

退出按钮

在本节的最后一个示例中,我们将创建一个退出按钮。 当我们按下此按钮时,应用终止。

#!/usr/local/bin/jruby

# ZetCode JRuby Swing tutorial
#
# This program creates a quit
# button. When we press the button,
# the application terminates. 
#
# author: Jan Bodnar
# website: www.zetcode.com
# last modified: December 2010

include Java

import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JPanel
import java.lang.System

class Example < JFrame

    def initialize
        super "Quit button"

        self.initUI
    end

    def initUI

        panel = JPanel.new
        self.getContentPane.add panel

        panel.setLayout nil

        qbutton = JButton.new "Quit"
        qbutton.setBounds 50, 60, 80, 30
        qbutton.add_action_listener do |e|
            System.exit 0
        end

        panel.add qbutton    

        self.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
        self.setSize 300, 200
        self.setLocationRelativeTo nil
        self.setVisible true
    end

end

Example.new

我们在窗口上放置一个JButton。 我们将向该按钮添加一个动作监听器。

qbutton = JButton.new "Quit"
qbutton.setBounds 50, 60, 80, 30

在这里,我们创建一个按钮。 我们通过调用setBounds方法对其进行定位。

qbutton.add_action_listener do |e|
    System.exit 0
end

我们向按钮添加一个动作监听器。 监听器终止应用。

Quit button

图:退出按钮

本节介绍了使用 JRuby 语言的 Swing 工具包。



回到顶部