<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Java Gnome 中的事件 > 原文: [http://zetcode.com/gui/javagnome/events/](http://zetcode.com/gui/javagnome/events/) 在 Java Gnome 編程教程的這一部分中,我們將討論事件。 Java Gnome 庫是事件驅動的系統。 所有 GUI 應用都是事件驅動的。 應用啟動一個主循環,該循環不斷檢查新生成的事件。 如果沒有事件,則應用將等待并且不執行任何操作。 ## 簡單事件示例 下一個示例顯示了我們如何應對兩個基本事件。 `quitbutton.java` ```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.Widget; import org.gnome.gtk.Window; import org.gnome.gtk.WindowPosition; /** * Java Gnome tutorial * * This program demonstrates two * basic events. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GButton extends Window { public GButton() { setTitle("Button"); initUI(); setPosition(WindowPosition.CENTER); showAll(); } public void initUI() { connect(new Window.DeleteEvent() { public boolean onDeleteEvent(Widget source, Event event) { Gtk.mainQuit(); return false; } }); Fixed fixed = new Fixed(); Button quit = new Button("Quit"); quit.connect(new Button.Clicked() { public void onClicked(Button button) { Gtk.mainQuit(); } }); quit.setSizeRequest(80, 35); fixed.put(quit, 50, 50); add(fixed); setSizeRequest(250, 200); } public static void main(String[] args) { Gtk.init(args); new GButton(); Gtk.main(); } } ``` 在我們的代碼示例中,我們對兩個事件做出反應。 刪除事件和單擊事件。 當我們關閉窗口時,將觸發刪除事件。 默認情況下,該窗口被銷毀,但應用不退出。 我們必須明確退出該程序。 ```java connect(new Window.DeleteEvent() { public boolean onDeleteEvent(Widget source, Event event) { Gtk.mainQuit(); return false; } }); ``` 如果單擊窗口的關閉按鈕,則窗口將被破壞。 但是應用并未完全銷毀。 我們必須調用`Gtk.mainQuit()`結束應用。 我們使用`connect()`方法將回調方法連接到特定事件類型。 在我們的例子中是`DeleteEvent`。 ```java quit.connect(new Button.Clicked() { public void onClicked(Button button) { Gtk.mainQuit(); } }); ``` 當我們單擊按鈕小部件時,將觸發`onClicked()`方法。 我們對按鈕單擊做出反應,退出了應用。 ## 移動窗口 下一個示例顯示了我們如何對移動窗口事件做出反應。 我們在標題欄中顯示窗口左上角的當前位置。 `move.java` ```java package com.zetcode; import org.gnome.gdk.Event; import org.gnome.gdk.EventConfigure; 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 demonstrates the * configure event. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GMoveWindow extends Window implements Window.ConfigureEvent { public GMoveWindow() { connect(new Window.DeleteEvent() { public boolean onDeleteEvent(Widget source, Event event) { Gtk.mainQuit(); return false; } }); connect(this); setPosition(WindowPosition.CENTER); setTitle(""); resize(250, 200); showAll(); } public boolean onConfigureEvent(Widget widget, EventConfigure eventConfigure) { int x = eventConfigure.getX(); int y = eventConfigure.getY(); setTitle(x + ", " + y); return false; } public static void main(String[] args) { Gtk.init(args); new GMoveWindow(); Gtk.main(); } } ``` 調整大小和移動窗口最終導致創建`ConfigureEvent`。 ```java public boolean onConfigureEvent(Widget widget, EventConfigure eventConfigure) { int x = eventConfigure.getX(); int y = eventConfigure.getY(); setTitle(x + ", " + y); return false; } ``` 我們將窗口的 x,y 坐標設置為窗口的標題欄。 ![Move event](https://img.kancloud.cn/49/cd/49cd857f10d41dd0bc03de801a35bd75_256x225.jpg) 圖:移動事件 ## `EnterNotifyEvent` 當我們使用鼠標指針進入小部件的區域時,會發出`EnterNotifyEvent`。 `enter.java` ```java package com.zetcode; import org.gnome.gdk.Color; import org.gnome.gdk.Event; import org.gnome.gdk.EventCrossing; import org.gnome.gtk.Button; import org.gnome.gtk.Fixed; import org.gnome.gtk.Gtk; import org.gnome.gtk.StateType; import org.gnome.gtk.Widget; import org.gnome.gtk.Window; import org.gnome.gtk.WindowPosition; /** * ZetCode Java Gnome tutorial * * This program demonstrates the * EnterNotifyEvent. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GEnterNotifyEvent extends Window { private Color lightGray = new Color(55000, 55000, 55000); public GEnterNotifyEvent() { setTitle("EnterNotifyEvent"); initUI(); connect(new Window.DeleteEvent() { public boolean onDeleteEvent(Widget source, Event event) { Gtk.mainQuit(); return false; } }); setDefaultSize(250, 150); setPosition(WindowPosition.CENTER); showAll(); } public void initUI() { Button button = new Button("Button"); button.setSizeRequest(80, 30); button.connect(new Button.EnterNotifyEvent() { public boolean onEnterNotifyEvent(Widget widget, EventCrossing eventCrossing) { widget.modifyBackground(StateType.PRELIGHT, lightGray); return false; } }); Fixed fix = new Fixed(); fix.put(button, 20, 20); add(fix); } public static void main(String[] args) { Gtk.init(args); new GEnterNotifyEvent(); Gtk.main(); } } ``` 一旦將鼠標指針懸停在按鈕小部件上,我們將更改其背景顏色。 ```java button.connect(new Button.EnterNotifyEvent() { public boolean onEnterNotifyEvent(Widget widget, EventCrossing eventCrossing) { widget.modifyBackground(StateType.PRELIGHT, lightGray); return false; } }); ``` 在這里,我們對`EnterNotifyEvent`做出反應。 ```java widget.modifyBackground(StateType.PRELIGHT, lightGray); ``` 我們修改按鈕背景的顏色。 本章介紹 Java Gnome 中的事件。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看