Skip to content

Latest commit

 

History

History
377 lines (257 loc) · 7.04 KB

196.md

File metadata and controls

377 lines (257 loc) · 7.04 KB

Java Gnome 的第一步

原文: http://zetcode.com/gui/javagnome/firststeps/

在 Java Gnome 编程教程的这一部分中,我们将进行编程的第一步。 我们将创建简单的程序。

简单的例子

第一个代码示例是一个简单的示例,它显示了居中的窗口。

simple.java

package com.zetcode;

import org.gnome.gdk.Event;
import org.gnome.gtk.Gtk;
import org.gnome.gtk.Widget;
import org.gnome.gtk.Window;
import org.gnome.gtk.WindowPosition;

/**
 * ZetCode Java Gnome tutorial
 *
 * This program is a simple Java Gnome
 * application.
 *
 * @author jan bodnar
 * website zetcode.com
 * last modified March 2009
 */

public class GSimple extends Window  {

    public GSimple() {

        setTitle("Simple");

        connect(new Window.DeleteEvent() {
            public boolean onDeleteEvent(Widget source, Event event) {
                Gtk.mainQuit();
                return false;
            }
        });

        setDefaultSize(250, 150);
        setPosition(WindowPosition.CENTER);
        show();
    }

    public static void main(String[] args) {
        Gtk.init(args);
        new GSimple();
        Gtk.main();
    }
}

该代码示例在屏幕中央显示一个小窗口。

import org.gnome.gdk.Event;
import org.gnome.gtk.Gtk;
import org.gnome.gtk.Widget;
import org.gnome.gtk.Window;
import org.gnome.gtk.WindowPosition;

我们导入所有必要的对象。

public class GSimple extends Window  {

我们的应用基于Window类。 窗口是顶级小部件,用作其他小部件的容器。

setTitle("Simple");

在这里,我们设置窗口的标题。

connect(new Window.DeleteEvent() {
    public boolean onDeleteEvent(Widget source, Event event) {
        Gtk.mainQuit();
        return false;
    }
});

如果关闭窗口,此代码将完全退出 Java Gnome 应用。

setDefaultSize(250, 150);

此行设置窗口的默认大小。

setPosition(WindowPosition.CENTER);

这条线使窗口在屏幕上居中。

show();

现在我们显示窗口。 在调用show()方法之前,该窗口不可见。

public static void main(String[] args) {
    Gtk.init(args);
    new GSimple();
    Gtk.main();
}

main()方法是应用的入口点。 它启动并运行程序。

Simple

图:简单

图标

在下一个示例中,我们显示应用图标。 大多数窗口管理器在标题栏的左上角以及任务栏上都显示图标。

icon.java

package com.zetcode;

import java.io.FileNotFoundException;

import org.gnome.gdk.Event;
import org.gnome.gdk.Pixbuf;
import org.gnome.gtk.Gtk;
import org.gnome.gtk.Widget;
import org.gnome.gtk.Window;
import org.gnome.gtk.WindowPosition;

/**
 * ZetCode Java Gnome tutorial
 *
 * This program shows a small icon
 * in the top left corner of the window. 
 *
 * @author jan bodnar
 * website zetcode.com
 * last modified March 2009
 */

public class GIcon extends Window implements Window.DeleteEvent {

    Pixbuf icon;

    public GIcon() {

        setTitle("Icon");

        initUI();

        connect(this);

        setDefaultSize(250, 150);
        setPosition(WindowPosition.CENTER);
        show();
    }

    public void initUI() {

        try {
            icon = new Pixbuf("web.png");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        setIcon(icon);
    }

    public boolean onDeleteEvent(Widget widget, Event event) {
        Gtk.mainQuit();
        return false;
    }

    public static void main(String[] args) {

        Gtk.init(args);
        new GIcon();
        Gtk.main();
    }
}

该代码示例显示了应用图标。

initUI();

我们将用户界面的设置委托给initUI()方法。

try {
    icon = new Pixbuf("web.png");
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

我们从磁盘上的文件加载pixbuf

setIcon(icon);

setIcon()方法为窗口设置图标。

Icon

图:图标

按钮

在下一个示例中,我们将使用 Java Gnome 库进一步增强我们的编程技能。

buttons.java

package com.zetcode;

import org.gnome.gdk.Event;
import org.gnome.gtk.Button;
import org.gnome.gtk.Fixed;
import org.gnome.gtk.Gtk;
import org.gnome.gtk.Stock;
import org.gnome.gtk.Widget;
import org.gnome.gtk.Window;
import org.gnome.gtk.WindowPosition;

/**
 * ZetCode Java Gnome tutorial
 *
 * This program shows four buttons
 * with different characteristics.
 *
 * @author jan bodnar
 * website zetcode.com
 * last modified March 2009
 */

public class GButtons extends Window {

    public GButtons() {
        setTitle("Buttons");

        initUI();

        connect(new Window.DeleteEvent() {
            public boolean onDeleteEvent(Widget source, Event event) {
                Gtk.mainQuit();
                return false;
            }
        });

        setDefaultSize(250, 200);
        setPosition(WindowPosition.CENTER);
        showAll();
    }

    public void initUI() {
        Fixed fix = new Fixed();

        Button btn1 = new Button("Button");
        btn1.setSensitive(false);
        Button btn2 = new Button("Button");
        Button btn3 = new Button(Stock.CLOSE);
        Button btn4 = new Button("Button");
        btn4.setSizeRequest(80, 40);

        fix.put(btn1, 20, 30);
        fix.put(btn2, 100, 30);
        fix.put(btn3, 20, 80);
        fix.put(btn4, 100, 80);

        add(fix);
    }

    public static void main(String[] args) {
        Gtk.init(args);
        new GButtons();
        Gtk.main();
    }
}

我们在窗口上显示四个不同的按钮。 我们将看到容器窗口小部件和子窗口小部件之间的区别,并将更改子窗口小部件的某些属性。

Fixed fix = new Fixed();

Fixed小部件是不可见的容器小部件。 其目的是包含其他子窗口小部件。

Button btn1 = new Button("Button");

Button是子窗口小部件。 子窗口小部件放置在容器内。

btn1.setSensitive(false);

我们使此按钮不敏感。 这意味着我们无法单击它。 图形化的小部件为灰色。

Button btn3 = new Button(Stock.CLOSE);

第三个按钮在其区域内显示图像。 Java Gnome 库具有我们可以使用的内置图像库。

btn4.setSizeRequest(80, 40);

在这里,我们更改按钮的大小。

fix.put(btn1, 20, 30);
fix.put(btn2, 100, 30);
...

在这里,我们将按钮小部件放置在固定容器小部件内。

add(fix);

我们将Fixed容器设置为Window小部件的主要容器。

showAll();

我们可以调用showAll()方法(它一次显示所有窗口小部件),也可以在每个窗口小部件上调用show()方法。 包括容器。

Buttons

图:按钮

在本章中,我们在 Java Gnome 编程库中创建了第一个程序。