」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 按鈕

按鈕

發佈於2024-07-31
瀏覽:753

A 按鈕是點擊時觸發動作事件的控制項。 JavaFX 提供常規按鈕、切換按鈕、複選框按鈕和單選按鈕。這些按鈕的共同特徵定義在 ButtonBaseLabeled 類別中,如下圖所示。

Image description

Labeled 類別定義標籤和按鈕的通用屬性。按鈕就像標籤,只不過按鈕具有 ButtonBase 類別中定義的 onAction 屬性,該屬性設定用於處理按鈕操作的處理程序。

下面的程式碼給出了一個使用按鈕來控製文字移動的程序,如下圖所示。

package application;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.text.Text;

public class ButtonDemo extends Application {
    protected Text text = new Text(50, 50, "JavaFX Programming");

    protected BorderPane getPane() {
        HBox paneForButtons = new HBox(20);
        Button btLeft = new Button("Left", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg"));
        Button btRight = new Button("Right", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg"));
        paneForButtons.getChildren().addAll(btLeft, btRight);
        paneForButtons.setAlignment(Pos.CENTER);
        paneForButtons.setStyle("-fx-border-color: green");

        BorderPane pane = new BorderPane();
        pane.setBottom(paneForButtons);

        Pane paneForText = new Pane();
        paneForText.getChildren().add(text);
        pane.setCenter(paneForText);

        btLeft.setOnAction(e -> text.setX(text.getX() - 10));
        btRight.setOnAction(e -> text.setX(text.getX()   10));

        return pane;
    }

    @Override // Override the start method in the Application class
    public void start(Stage primaryStage) {
        // Create a scene and place it in the stage
        Scene scene = new Scene(getPane(), 450, 200);
        primaryStage.setTitle("ButtonDemo"); // Set the stage title
        primaryStage.setScene(scene); // Place the scene in the stage
        primaryStage.show(); // Display the stage
    }

    public static void main(String[] args) {
        Application.launch(args);
    }
}

Image description

程式建立兩個按鈕btLeftbtRight,每個按鈕包含一個文字和一個圖像(第18-19行)。這些按鈕放置在 HBox(第 20 行)中,HBox 放置在邊框窗格的底部(第 25 行)。文字在第 14 行中創建,並放置在邊框窗格的中心(第 29 行)。 btLeft 的操作處理程序將文字移到左側(第 31 行)。 btRight 的操作處理程序將文字移到右側(第 32 行)。

程式刻意定義了一個受保護的getPane()方法來傳回一個窗格(第16行)。在接下來的範例中,該方法將被子類別覆蓋,以在窗格中添加更多節點。該文字被宣告為受保護,以便子類別可以存取它(第 14 行)。

版本聲明 本文轉載於:https://dev.to/paulike/button-4khg?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • HTML 格式標籤
    HTML 格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2024-12-23
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-12-23
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-12-23
  • 為什麼我在 Laravel 收到「Session store not set on request」錯誤?
    為什麼我在 Laravel 收到「Session store not set on request」錯誤?
    Laravel:解決「Session store not set on request」錯誤簡介使用Laravel 時,遇到「未根據請求設定會話儲存」錯誤可能會令人沮喪。本文旨在提供對該問題的清晰解釋和逐步解決方案。 錯誤是什麼? “Session store not set on” request...
    程式設計 發佈於2024-12-23
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段:action=''而非:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST陣列:表單提交後使用 var_dump 檢查 $_POST 陣列的內容...
    程式設計 發佈於2024-12-23
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    程式設計 發佈於2024-12-23
  • 如何在同一目錄中組織一個庫和 CLI 的 Go 專案?
    如何在同一目錄中組織一個庫和 CLI 的 Go 專案?
    在多包專案中組織程式碼在同時需要庫和命令列介面(CLI) 的Go 專案中,經常會遇到以下問題在同一目錄中有多個包。 這樣的專案架構:whatever.io/ myproject/ main.go myproject.go套件 main 和 func main ...
    程式設計 發佈於2024-12-23
  • 如何在 Android 中選擇後保持 ListView 項目突出顯示?
    如何在 Android 中選擇後保持 ListView 項目突出顯示?
    如何在Android 中選擇後保持ListView 項目突出顯示在Android 中,維護ListView 項目的選定狀態可以透過提供以下功能來增強使用者體驗:目前選擇的清晰視覺指示器。然而,有時開發人員會遇到這樣的問題:所選項目在某些事件(例如捲動或與 ListView 進一步互動)後失去突出顯示...
    程式設計 發佈於2024-12-23
  • 如何使用自訂 CSS 在 Bootstrap 3 中建立全高列?
    如何使用自訂 CSS 在 Bootstrap 3 中建立全高列?
    Bootstrap 3 全高列:自訂CSS 解決方案簡介:創建Twitter Bootstrap 3 的全高佈局可能具有挑戰性。雖然Bootstrap的原生類別不支援此功能,但可以使用自訂CSS來實現此效果。 自訂CSS方法:設定100% 高度:將body、container 和row 元素的高度設...
    程式設計 發佈於2024-12-23
  • 如何在不使用連結的情況下為 Span 元素添加工具提示?
    如何在不使用連結的情況下為 Span 元素添加工具提示?
    向不帶連結的Span 元素添加工具提示將滑鼠懸停在span 元素上時,通常需要向用戶提供附加資訊.這可以使用工具提示來實現,而不依賴連結。 解決方案:要使用內建HTML 屬性將工具提示新增至span 元素,只需如下使用title 屬性:<span title="My tip"...
    程式設計 發佈於2024-12-23
  • 為什麼我的 WebSocket 伺服器在 Docker 化後無法連線?
    為什麼我的 WebSocket 伺服器在 Docker 化後無法連線?
    Docker化 WebSocket 伺服器問題Docker化 WebSocket 伺服器問題開發人員在嘗試使用 Docker 容器化 WebSocket 伺服器時遇到問題。伺服器程式碼使用「connected」寫入新連接,並且在容器外運行良好,但當放置在Docker 容器內時,客戶端會因「連接重設」...
    程式設計 發佈於2024-12-23
  • Python中如何匯入同目錄或子目錄中的類別?
    Python中如何匯入同目錄或子目錄中的類別?
    在Python中從同一目錄或子目錄匯入類別在Python中,您可以透過下列方式從同一目錄或子目錄中的檔案導入類別利用__init__.py 檔案。該檔案是一個空佔位符,指示該目錄包含模組和套件。 從同一目錄匯入從與 main 相同的目錄中的檔案匯入類別.py,在該目錄中建立一個 __init__.p...
    程式設計 發佈於2024-12-23
  • 為什麼C90中函數名可以當函數指標?
    為什麼C90中函數名可以當函數指標?
    使用函數名稱作為函數指標C90 的基本原理文件深入了解了將函數名稱與函數指標等同的設計選擇。這種便利性簡化了在特定上下文中使用函數指標的過程。 函數宣告考慮宣告:int f(); int (*pf)();函數呼叫以下所有表示有效的函數呼叫:(&f)(); f(); (*f)(); (**f)...
    程式設計 發佈於2024-12-23
  • 如何在 Python 中使用多個單字邊界分隔符號將字串拆分為單字?
    如何在 Python 中使用多個單字邊界分隔符號將字串拆分為單字?
    使用多個單字邊界定界符將字串拆分為單字處理文字資料時,常見的任務是將字串拆分為單字。 Python 的 str.split() 方法提供了一個簡單的解決方案,但它僅支援單一分隔符號作為其參數。在處理包含多種類型的單字邊界(例如標點符號)的文字時,此限制可能會成為障礙。 Python re 模組提供了...
    程式設計 發佈於2024-12-23
  • 為什麼 Selenium 在 Chrome 中定位元素時會拋出“NoSuchElementException”?
    為什麼 Selenium 在 Chrome 中定位元素時會拋出“NoSuchElementException”?
    "NoSuchElementException" for Chrome with SeleniumIssue"NoSuchElementException" for Chrome with SeleniumIssueselenium.common.except...
    程式設計 發佈於2024-12-23

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3