|
|
| Строка 1: |
Строка 1: |
| - | In this part of the Java Gnome programming tutorial, we will do our first steps in programming.
| |
| - | We will create simple programs.
| |
| | | | |
| - | == Simple example ==
| |
| - |
| |
| - | The first code example is a simple one that shows a centered window.
| |
| - |
| |
| - | <source lang="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();
| |
| - | }
| |
| - | }
| |
| - | </source>
| |
| - |
| |
| - | The code example shows a small window in the center of the screen.
| |
| - |
| |
| - | <source lang="java">
| |
| - | 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;
| |
| - | </source>
| |
| - |
| |
| - | We import all necessary objects.
| |
| - |
| |
| - | <source lang="java">
| |
| - | public class GSimple extends Window {
| |
| - | </source>
| |
| - |
| |
| - | Our application is based on the <b>Window</b> class.
| |
| - | Window is a toplevel widget that is used as a container for other widgets.
| |
| - |
| |
| - | <source lang="java">
| |
| - | setTitle("Simple");
| |
| - |
| |
| - | </source>
| |
| - |
| |
| - | Here we set the title for the window.
| |
| - |
| |
| - | <source lang="java">
| |
| - | connect(new Window.DeleteEvent() {
| |
| - | public boolean onDeleteEvent(Widget source, Event event) {
| |
| - | Gtk.mainQuit();
| |
| - | return false;
| |
| - | }
| |
| - | });
| |
| - | </source>
| |
| - |
| |
| - | This code cleanly exits the Java Gnome application, if we close the window.
| |
| - |
| |
| - | <source lang="java">
| |
| - | setDefaultSize(250, 150);
| |
| - |
| |
| - | </source>
| |
| - |
| |
| - | This line sets a default size for the window.
| |
| - |
| |
| - | <source lang="java">
| |
| - | setPosition(WindowPosition.CENTER);
| |
| - | </source>
| |
| - |
| |
| - | This line centers the window on the screen.
| |
| - |
| |
| - | <source lang="java">
| |
| - | show();
| |
| - |
| |
| - | </source>
| |
| - |
| |
| - | Now we show the window. The window is not visible, until we call the <b>show()</b> method.
| |
| - |
| |
| - | <source lang="java">
| |
| - | public static void main(String[] args) {
| |
| - | Gtk.init(args);
| |
| - | new GSimple();
| |
| - | Gtk.main();
| |
| - | }
| |
| - | </source>
| |
| - |
| |
| - | The <b>main()</b> method is the entry point to the application. It initiates and runs the program.
| |
| - |
| |
| - | [[image: Java_Gnome_faq_simple.png| center]]
| |
| - |
| |
| - |
| |
| - | == Icon ==
| |
| - |
| |
| - | In the next example, we show the application icon. Most window managers display the icon in the left corner of the titlebar and also on the taskbar.
| |
| - |
| |
| - | <source lang="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();
| |
| - | }
| |
| - | }
| |
| - | </source>
| |
| - |
| |
| - | The code example shows the application icon.
| |
| - |
| |
| - | <source lang="java">
| |
| - | initUI();
| |
| - | </source>
| |
| - |
| |
| - | We delegate the setup of the user interface to the <b>initUI()</b> method.
| |
| - |
| |
| - | <source lang="java">
| |
| - | try {
| |
| - | icon = new Pixbuf("web.png");
| |
| - | } catch (FileNotFoundException e) {
| |
| - | e.printStackTrace();
| |
| - | }
| |
| - | </source>
| |
| - |
| |
| - | We load a pixbuf from the file on the disk.
| |
| - |
| |
| - | <source lang="java">
| |
| - | setIcon(icon);
| |
| - | </source>
| |
| - |
| |
| - |
| |
| - | The <b>setIcon()</b> method sets an icon for the window.
| |
| - |
| |
| - | [[image: Java_Gnome_faq_icon.png| center]]
| |
| - |
| |
| - | == Buttons ==
| |
| - |
| |
| - | In the next example, we will further enhance our programming skills with the Java Gnome library.
| |
| - |
| |
| - | <source lang="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();
| |
| - | }
| |
| - | }
| |
| - | </source>
| |
| - |
| |
| - | We show four different buttons on the window. We will see a difference between container widgets and child widgets and will change some properties of child widgets.
| |
| - |
| |
| - | <source lang="java">
| |
| - | Fixed fix = new Fixed();
| |
| - |
| |
| - | </source>
| |
| - |
| |
| - | <b>Fixed</b> widget is a non visible container widget. It's purpose is to contain other child widgets.
| |
| - |
| |
| - | <source lang="java">
| |
| - | Button btn1 = new Button("Button");
| |
| - | </source>
| |
| - |
| |
| - | A <b>Button</b> is a child widget. Child widgets are placed inside containers.
| |
| - |
| |
| - | <source lang="java">
| |
| - | btn1.setSensitive(false);
| |
| - | </source>
| |
| - |
| |
| - | We make this button insensitive. This means, we cannot click on it. Graphically the widget is grayed out.
| |
| - |
| |
| - | <source lang="java">
| |
| - | Button btn3 = new Button(Stock.CLOSE);
| |
| - | </source>
| |
| - |
| |
| - | The third button shows an image inside it's area. The Java Gnome library has a built-in stock of images, that we can use.
| |
| - |
| |
| - | <source lang="java">
| |
| - | btn4.setSizeRequest(80, 40);
| |
| - | </source>
| |
| - |
| |
| - | Here we change the size of the button.
| |
| - |
| |
| - | <source lang="java">
| |
| - | fix.put(btn1, 20, 30);
| |
| - | fix.put(btn2, 100, 30);
| |
| - | ...
| |
| - | </source>
| |
| - |
| |
| - | Here we place button widgets inside fixed container widget.
| |
| - |
| |
| - | <source lang="java">
| |
| - | add(fix);
| |
| - | </source>
| |
| - |
| |
| - | We set the <b>Fixed</b> container to be the main container for our <b>Window</b> widget.
| |
| - |
| |
| - | <source lang="java">
| |
| - | showAll();
| |
| - | </source>
| |
| - |
| |
| - | We can either call <b>showAll()</b> method, which shows all widgets at once, or we call <b>show()</b> method on each of the widgets.
| |
| - | Including containers.
| |
| - |
| |
| - | [[image: Java_Gnome_faq_buttons.png| center]]
| |
| - |
| |
| - | In this chapter, we created first programs in Java Gnome programming library.
| |
| - |
| |
| - | [[Категория:GTK+]]
| |
| - | [[Категория:Java]]
| |