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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Java Gnome 中的小部件 II > 原文: [http://zetcode.com/gui/javagnome/widgetsII/](http://zetcode.com/gui/javagnome/widgetsII/) 在 Java Gnome 編程教程的這一部分中,我們繼續介紹小部件。 ## `Entry` `Entry`是單行文本輸入字段。 該小部件用于輸入文本數據。 `entry.java` ```java package com.zetcode; import org.gnome.gdk.Event; import org.gnome.gtk.Editable; import org.gnome.gtk.Entry; import org.gnome.gtk.Fixed; 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 shows how to use * an Entry widget. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GEntry extends Window { private Label label; private Entry entry; public GEntry() { setTitle("Entry"); 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() { label = new Label("..."); entry = new Entry(); entry.connect(new Entry.Changed() { public void onChanged(Editable editable) { label.setLabel(entry.getText()); } }); Fixed fix = new Fixed(); fix.put(entry, 60, 100); fix.put(label, 60, 40); add(fix); } public static void main(String[] args) { Gtk.init(args); new GEntry(); Gtk.main(); } } ``` 此示例顯示了條目小部件和標簽。 我們輸入的文本將立即顯示在標簽控件中。 ```java entry = new Entry(); ``` `Entry`小部件已創建。 ```java entry.connect(new Entry.Changed() { public void onChanged(Editable editable) { label.setLabel(entry.getText()); } }); ``` 如果`Entry`小部件中的文本被更改,我們將調用`onChanged()`方法。 在這種方法中,我們從`Entry`小部件中獲取文本并將其設置為標簽。 ![Entry Widget](https://img.kancloud.cn/a2/bd/a2bddaaa8060db206a51831315c6244f_256x225.jpg) 圖:`Entry`小部件 ## `HScale` `Scale`是一個小部件,可讓用戶通過在有限間隔內滑動旋鈕以圖形方式選擇一個值。 我們的示例將顯示音量控制。 `hscale.java` ```java package com.zetcode; import java.io.FileNotFoundException; import org.gnome.gdk.Event; import org.gnome.gdk.Pixbuf; import org.gnome.gtk.Fixed; import org.gnome.gtk.Gtk; import org.gnome.gtk.HScale; import org.gnome.gtk.Image; import org.gnome.gtk.Range; import org.gnome.gtk.Widget; import org.gnome.gtk.Window; import org.gnome.gtk.WindowPosition; /** * Java Gnome tutorial * * This program shows how to use * the HScale widget. It implements a * volume control. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GHScale extends Window { private HScale hscale; private Image image; private Pixbuf mute; private Pixbuf min; private Pixbuf med; private Pixbuf max; public GHScale() { setTitle("HScale"); initUI(); connect(new Window.DeleteEvent() { public boolean onDeleteEvent(Widget source, Event event) { Gtk.mainQuit(); return false; } }); setDefaultSize(260, 120); setPosition(WindowPosition.CENTER); showAll(); } public void initUI() { loadImages(); hscale = new HScale(0, 99, 1); hscale.setSizeRequest(130, 45); hscale.setCanFocus(false); image = new Image("mute.png"); hscale.connect(new HScale.ValueChanged() { public void onValueChanged(Range range) { int pos = (int) hscale.getValue(); if (pos == 0) { image.setImage(mute); } else if (pos > 0 && pos <= 30) { image.setImage(min); } else if (pos > 30 && pos < 80) { image.setImage(med); } else { image.setImage(max); } } }); Fixed fixed = new Fixed(); fixed.put(hscale, 40, 20); fixed.put(image, 220, 40); add(fixed); } private void loadImages() { try { mute = new Pixbuf("mute.png"); min = new Pixbuf("min.png"); med = new Pixbuf("med.png"); max = new Pixbuf("max.png"); } catch (FileNotFoundException e) { e.printStackTrace(); } } public static void main(String[] args) { Gtk.init(args); new GHScale(); Gtk.main(); } } ``` 在上面的示例中,我們有`HScale`和`Image`小部件。 通過拖動比例尺,我們可以在`Image`小部件上更改圖像。 ```java hscale = new HScale(0, 99, 1); ``` `HScale`小部件已創建。 參數是下邊界,上邊界和階躍。 ```java int pos = (int) hscale.getValue(); ``` 在`onValueChanged()`方法中,我們獲得了比例小部件的值。 ```java if (pos == 0) { image.setImage(mute); } else if (pos > 0 && pos <= 30) { image.setImage(min); } else if (pos > 30 && pos < 80) { image.setImage(med); } else { image.setImage(max); } ``` 根據獲得的值,我們在圖像小部件中更改圖片。 ![HScale Widget](https://img.kancloud.cn/95/6f/956f96184d4eee4efa62f234e1b64108_266x145.jpg) 圖:`HScale`小部件 ## `ToggleButton` `ToggleButton`是具有兩種狀態的按鈕。 已按下但未按下。 通過單擊可以在這兩種狀態之間切換。 在某些情況下此功能非常合適。 `togglebuttons.java` ```java package com.zetcode; import org.gnome.gdk.Color; import org.gnome.gdk.Event; import org.gnome.gtk.DrawingArea; import org.gnome.gtk.Fixed; import org.gnome.gtk.Gtk; import org.gnome.gtk.StateType; 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 demonstrates the ToggleButton * widget. Three toggle buttons control the * color of a drawing area. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GToggleButton extends Window implements ToggleButton.Toggled { private ToggleButton tb1; private ToggleButton tb2; private ToggleButton tb3; private DrawingArea darea; private Color color; public GToggleButton() { setTitle("ToggleButton"); initUI(); setPosition(WindowPosition.CENTER); setSizeRequest(350, 220); showAll(); } public void initUI() { color = new Color(0, 0, 0); connect(new Window.DeleteEvent() { public boolean onDeleteEvent(Widget source, Event event) { Gtk.mainQuit(); return false; } }); Fixed fixed = new Fixed(); tb1 = new ToggleButton("Red"); tb1.setSizeRequest(80, 35); tb1.connect(this); tb2 = new ToggleButton("Green"); tb2.setSizeRequest(80, 35); tb2.connect(this); tb3 = new ToggleButton("Blue"); tb3.setSizeRequest(80, 35); tb3.connect(this); darea = new DrawingArea(); darea.modifyBackground(StateType.NORMAL, Color.BLACK); darea.setSizeRequest(150, 150); fixed.put(tb1, 20, 20); fixed.put(tb2, 20, 65); fixed.put(tb3, 20, 110); fixed.put(darea, 150, 20); add(fixed); } public void onToggled(ToggleButton toggleButton) { int red = color.getRed(); int green = color.getGreen(); int blue = color.getBlue(); if ("Red".equals(toggleButton.getLabel())) { if (toggleButton.getActive()) { red = 65535; } else { red = 0; } } if ("Green".equals(toggleButton.getLabel())) { if (toggleButton.getActive()) { green = 65535; } else { green = 0; } } if ("Blue".equals(toggleButton.getLabel())) { if (toggleButton.getActive()) { blue = 65535; } else { blue = 0; } } color = new Color(red, green, blue); darea.modifyBackground(StateType.NORMAL, color); } public static void main(String[] args) { Gtk.init(args); new GToggleButton(); Gtk.main(); } } ``` 在我們的示例中,我們顯示了三個切換按鈕和一個`DrawingArea`。 我們將區域的背景色設置為黑色。 切換按鈕將切換顏色值的紅色,綠色和藍色部分。 背景顏色取決于我們按下的切換按鈕。 ```java color = new Color(0, 0, 0); ``` 這是將使用切換按鈕更新的顏色值。 ```java tb1 = new ToggleButton("Red"); tb1.setSizeRequest(80, 35); tb1.connect(this); ``` `ToggleButton`小部件已創建。 我們將其大小設置為`80x35`像素。 它連接到`onToggled()`方法。 ```java darea = new DrawingArea(); darea.modifyBackground(StateType.NORMAL, Color.BLACK); darea.setSizeRequest(150, 150); ``` `DrawingArea`小部件是顯示顏色的小部件,由切換按鈕混合。 開始時,它顯示為黑色。 ```java if ("Red".equals(toggleButton.getLabel())) { if (toggleButton.getActive()) { red = 65535; } else { red = 0; } } ``` 我們根據紅色切換按鈕的狀態更新顏色的紅色部分。 ```java color = new Color(red, green, blue); darea.modifyBackground(StateType.NORMAL, color); ``` 顏色值將更新并設置為`DrawingArea`小部件。 ![ToggleButton widget](https://img.kancloud.cn/bb/fe/bbfe7ebe7ad850932e8c199c1719b64c_356x245.jpg) 圖:`ToggleButton` widget ## `Calendar` 我們最終的窗口小部件是`Calendar`小部件。 它用于處理日期。 `calendar.java` ```java package com.zetcode; import org.gnome.gdk.Event; import org.gnome.gtk.Calendar; import org.gnome.gtk.Gtk; 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; /** * ZetCode Java Gnome tutorial * * This program demonstrates the Calendar * widget. We show a selected date in a * label widget. * * @author jan bodnar * website zetcode.com * last modified March 2009 */ public class GCalendar extends Window { private Calendar calendar; private Label label; public GCalendar() { setTitle("Calendar"); initUI(); connect(new Window.DeleteEvent() { public boolean onDeleteEvent(Widget source, Event event) { Gtk.mainQuit(); return false; } }); setDefaultSize(260, 120); setPosition(WindowPosition.CENTER); showAll(); } private void initUI() { VBox vbox = new VBox(false, 1); calendar = new Calendar(); label = new Label(getDate()); calendar.connect(new Calendar.DaySelected() { public void onDaySelected(Calendar calendar) { label.setLabel(getDate()); } }); vbox.add(calendar); label.setSizeRequest(-1, 50); vbox.add(label); add(vbox); } private String getDate() { int year = calendar.getDateYear(); int month = calendar.getDateMonth(); int day = calendar.getDateDay(); String dateLabel = month + "/" + day + "/" + year; return dateLabel; } public static void main(String[] args) { Gtk.init(args); new GCalendar(); Gtk.main(); } } ``` 我們有`Calendar`小部件和`Label`。 從日歷中選擇的日期顯示在標簽中。 ```java calendar = new Calendar(); ``` `Calendar`小部件已創建。 ```java public void onDaySelected(Calendar calendar) { label.setLabel(getDate()); }; ``` 在`onDaySelected()`方法中,我們將標簽更新為當前選擇的日期。 ![Calendar](https://img.kancloud.cn/79/a7/79a7d586f0d110e807b412ae6bc5dc1e_266x248.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>

                              哎呀哎呀视频在线观看