<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Java Gnome 中的小部件 > 原文: [http://zetcode.com/gui/javagnome/widgets/](http://zetcode.com/gui/javagnome/widgets/) 在 Java Gnome 編程教程的這一部分中,我們將介紹一些小部件。 小部件是 GUI 應用的基本構建塊。 多年來,幾個小部件已成為所有 OS 平臺上所有工具包中的標準。 例如,按鈕,復選框或滾動條。 GTK+ 工具箱的理念是將小部件的數量保持在最低水平。 將創建更多專門的小部件作為自定義小部件。 ## `Label` `Label`小部件顯示文本。 `label.java` ```java package com.zetcode; import org.gnome.gdk.Event; import org.gnome.gtk.Gtk; import org.gnome.gtk.Label; import org.gnome.gtk.Widget; import org.gnome.gtk.Window; import org.gnome.gtk.WindowPosition; /** * ZetCode Java Gnome tutorial * * This program uses Label widget * to display text. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GLabel extends Window { public GLabel() { setTitle("Death song"); initUI(); connect(new Window.DeleteEvent() { public boolean onDeleteEvent(Widget source, Event event) { Gtk.mainQuit(); return false; } }); setPosition(WindowPosition.CENTER); showAll(); } public void initUI() { Label lyrics = new Label("Lets sing the death song kids\n\n" + "We light a candle on an earth\n" + "We made into hell\n" + "And pretend that were in heaven\n" + "Each time we do we get\n" + "The blind mans ticket\n" + "And we know that nothings true\n" + "I saw priest kill a cop on the tv\n" + "And I know now theyre our heroes too\n\n" + "We sing the death song kids\n" + "Because weve got no future\n" + "And we want to be just like you\n" + "And we want to be just like you\n"); add(lyrics); setBorderWidth(8); } public static void main(String[] args) { Gtk.init(args); new GLabel(); Gtk.main(); } } ``` 該代碼示例在窗口上顯示了一些歌詞。 ```java Label lyrics = new Label("Lets sing the death song kids\n\n" + "We light a candle on an earth\n" + ... ``` 這是我們將在`Label`小部件中顯示的文本。 ```java setBorderWidth(8); ``` `Label`周圍有一些空白。 ![Label Widget](https://img.kancloud.cn/63/95/63952a419cfd41387dc51017ff86452b_260x281.jpg) 圖:`Label`小部件 ## `HSeparator` `HSeparator`是一個裝飾小部件,可用于分隔窗口上的項目。 `separator.java` ```java package com.zetcode; import org.gnome.gdk.Event; import org.gnome.gtk.Gtk; import org.gnome.gtk.HSeparator; import org.gnome.gtk.Label; import org.gnome.gtk.VBox; import org.gnome.gtk.Widget; import org.gnome.gtk.Window; import org.gnome.gtk.WindowPosition; /** * Java Gnome tutorial * * This program shows how to use * a horizontal separator. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GHSeparator extends Window { private final int VERTICAL_SPACE = 15; private final int BORDER_AROUND = 25; private final float Y_ALIGN = 0f; private final float X_ALIGN = 0f; public GHSeparator() { setTitle("HSeparator"); initUI(); connect(new Window.DeleteEvent() { public boolean onDeleteEvent(Widget source, Event event) { Gtk.mainQuit(); return false; } }); setPosition(WindowPosition.CENTER); showAll(); } public void initUI() { VBox vbox = new VBox(false, VERTICAL_SPACE); Label zinc = new Label("Zinc is a moderately reactive, blue" + "gray metal that tarnishes in moist air and burns in air of zinc " + "oxide. It reacts with acids, alkalis and other non-metals. If not" + "completely pure, zinc reacts with dilute acids to release hydrogen."); zinc.setLineWrap(true); zinc.setAlignment(X_ALIGN, Y_ALIGN); vbox.packStart(zinc); HSeparator hsep = new HSeparator(); vbox.packStart(hsep); Label copper = new Label("Copper is an essential trace nutrient to" + "all high plants and animals. In animals, including humans," + "it is found primarily in the bloodstream, as a co-factor in various" + "enzymes, and in copper-based pigments. However, in sufficient" + "amounts, copper can be poisonous and even fatal to organisms."); copper.setAlignment(X_ALIGN, Y_ALIGN); copper.setLineWrap(true); vbox.packStart(copper); add(vbox); setResizable(false); setBorderWidth(BORDER_AROUND); } public static void main(String[] args) { Gtk.init(args); new GHSeparator(); Gtk.main(); } } ``` 在我們的代碼示例中,我們描述了兩個化學元素,它們由水平分隔符分隔。 ```java zinc.setLineWrap(true); ``` 該行換行。 對于較長的文本,這是必需的。 ```java zinc.setAlignment(X_ALIGN, Y_ALIGN); ``` 此代碼行使文本左對齊。 ```java HSeparator hsep = new HSeparator(); vbox.packStart(hsep); ``` `HSeparator`小部件已創建并放置在兩個標簽小部件之間。 ![HSe](https://img.kancloud.cn/41/e0/41e031a685d33cec3e4cd294bcf463f4_446x242.jpg) 圖:`HSeparator` ## `CheckButton` `CheckButton`是具有兩種狀態的窗口小部件:打開和關閉。 接通狀態通過復選標記顯示。 它用來表示一些布爾屬性。 `checkbutton.java` ```java package com.zetcode; import org.gnome.gdk.Event; import org.gnome.gtk.CheckButton; import org.gnome.gtk.Fixed; import org.gnome.gtk.Gtk; import org.gnome.gtk.ToggleButton; import org.gnome.gtk.Widget; import org.gnome.gtk.Window; import org.gnome.gtk.WindowPosition; /** * ZetCode Java Gnome tutorial * * This program uses a CheckButton to * toggle the visibility of a window title. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GCheckButton extends Window implements ToggleButton.Toggled { CheckButton check; Window window; private String title = "Check Button"; public GCheckButton() { setTitle(title); initUI(); connect(new Window.DeleteEvent() { public boolean onDeleteEvent(Widget source, Event event) { Gtk.mainQuit(); return false; } }); setSizeRequest(250, 200); showAll(); } public void initUI() { setBorderWidth(10); Fixed fixed = new Fixed(); check = new CheckButton("Show title"); check.setActive(true); check.connect(this); check.setCanFocus(false); fixed.put(check, 50, 50); add(fixed); setPosition(WindowPosition.CENTER); } public void onToggled(ToggleButton toggleButton) { if (check.getActive()) { setTitle(title); } else { setTitle(""); } } public static void main(String[] args) { Gtk.init(args); new GCheckButton(); Gtk.main(); } } ``` 根據`CheckButton`的狀態,我們將在窗口的標題欄中顯示標題。 ```java check = new CheckButton("Show title"); ``` `CheckButton`小部件已創建。 ```java check.setActive(true); ``` 默認情況下標題是可見的,因此我們默認情況下選中復選按鈕。 ```java if (check.getActive()) { setTitle(title); } else { setTitle(""); } ``` 根據`CheckButton`的狀態,我們顯示或隱藏窗口的標題。 ![CheckButton](https://img.kancloud.cn/6c/8a/6c8a437a174766a7738eb13519bbc318_256x225.jpg) 圖:`CheckButton` ## `TextComboBox` `TextComboBox`是一個小部件,允許用戶從文本選項列表中進行選擇。 `textcombobox.java` ```java package com.zetcode; import org.gnome.gdk.Event; import org.gnome.gtk.ComboBox; import org.gnome.gtk.Fixed; import org.gnome.gtk.Gtk; import org.gnome.gtk.Label; import org.gnome.gtk.TextComboBox; import org.gnome.gtk.Widget; import org.gnome.gtk.Window; import org.gnome.gtk.WindowPosition; /** * ZetCode Java Gnome tutorial * * This program shows how to use * a TextComboBox. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GTextComboBox extends Window implements ComboBox.Changed { TextComboBox cb; Label label; public GTextComboBox() { setTitle("TextComboBox"); initUI(); setSizeRequest(250, 200); 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(); label = new Label(""); fixed.put(label, 55, 130); cb = new TextComboBox(); cb.appendText("Ubuntu"); cb.appendText("Mandriva"); cb.appendText("Fedora"); cb.appendText("Mint"); cb.appendText("Debian"); cb.appendText("Gentoo"); cb.connect(this); fixed.put(cb, 50, 50); add(fixed); } public void onChanged(ComboBox comboBox) { String text = cb.getActiveText(); label.setLabel(text); } public static void main(String[] args) { Gtk.init(args); new GTextComboBox(); Gtk.main(); } } ``` 該示例顯示了一個文本組合框和一個標簽。 文本組合框具有六個選項的列表。 這些是 Linux Distros 的名稱。 標簽窗口小部件顯示了從文本組合框中選擇的選項。 ```java cb = new TextComboBox(); ``` `TextComboBox`小部件已創建。 ```java cb.appendText("Ubuntu"); ``` 調用`appendText()`方法來填充文本組合框。 ```java public void onChanged(ComboBox comboBox) { String text = cb.getActiveText(); label.setLabel(text); } ``` 當我們從文本組合框中選擇一個選項時,將調用`onChanged()`方法。 我們獲取選定的文本并將其設置為標簽小部件。 ![TextComboBox](https://img.kancloud.cn/66/27/6627ddd44ba904fe5e482da2951f4a90_256x225.jpg) 圖:`TextComboBox` ## `Image` 下一個示例介紹`Image`小部件。 此小部件顯示圖片。 `image.java` ```java package com.zetcode; import org.gnome.gdk.Event; import org.gnome.gtk.Gtk; import org.gnome.gtk.Image; import org.gnome.gtk.Widget; import org.gnome.gtk.Window; import org.gnome.gtk.WindowPosition; /** * ZetCode Java Gnome tutorial * * This program shows an image of a castle * in the window. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GImage extends Window { public GImage() { setTitle("Red Rock"); initUI(); setPosition(WindowPosition.CENTER); showAll(); } public void initUI() { connect(new Window.DeleteEvent() { public boolean onDeleteEvent(Widget source, Event event) { Gtk.mainQuit(); return false; } }); Image image = new Image("redrock.png"); int width = image.getRequisition().getWidth(); int height = image.getRequisition().getHeight(); setSizeRequest(width, height); add(image); setBorderWidth(2); } public static void main(String[] args) { Gtk.init(args); new GImage(); Gtk.main(); } } ``` 我們在窗口中顯示紅色巖石城堡。 ```java Image image = new Image("redrock.png"); ``` 我們創建`Image`小部件的實例。 請注意,我們不會捕獲任何異常。 圖像小部件已經可以處理它們。 如果“圖像”小部件找不到`redrock.png`圖像,則默認情況下將顯示丟失的圖像。 ```java Image image = new Image(castle); Add(image); ``` `Image`小部件已創建并添加到窗口。 ![Image](https://img.kancloud.cn/64/cf/64cf3e3f155414459928215182b82f10_456x278.jpg) 圖:圖像 在本章中,我們展示了 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>

                              哎呀哎呀视频在线观看