簡體   English   中英

JavaFX:根據左窗格中的用戶輸入在中心窗格上繪制

[英]JavaFX : Draw on Center Pane based on user input in Left Pane

這是我的摘要代碼

public class KlArgon extends Application {

    BorderPane border ;
    Scene scene ;
    Stage stage;

    @Override
    public void start(Stage stage) {
       :
       border = new BorderPane();
       : 
       HBox infoBox = addInfoHBox();
       border.setTop(infoBox);
       :
       VBox menuBox = addMenuVBox();
       border.setLeft(menuBox);
       :
       border.setCenter(addAnchorPane(addGridPane()));
       // setRight and setBottom is not used

       :
        scene = new Scene (border);
        stage.setScene(scene);
        stage.show();
    }

    private Node addAnchorPane(GridPane grid) {
         AnchorPane anchorpane = new AnchorPane();
         anchorpane.getChildren().add(grid);
         AnchorPane.setTopAnchor(grid, 10.0);
         return anchorpane;   
    }

    private GridPane addGridPane() {
         GridPane grid = new GridPane();
         grid.setHgap(10);
         grid.setVgap(10);
         grid.setPadding(new Insets(0, 10, 0, 10));
         grid.add(addWhiteboard(), 1, 0); 
         return grid;
    }

    private Node addWhiteboard() {
         Canvas canvas = new Canvas (wboardWd, wdboardHt);
         GraphicsContext gc = canvas.getGraphicsContext2D();
         drawShapes(gc);
         drawfromClipboard(gc);
         return canvas;
    }

}

我將“中心”窗格稱為“白板”。 除其他外,我在menuBox有兩個按鈕btnCopyFromClipboardbtnClearWhiteboard

當用戶按下btnCopyFromClipboard -用戶應該只能在“白板”中繪制一個矩形(即僅限於中心窗格),然后剪貼板圖像將被復制(縮放)到該矩形中。

所以我將borderscenestage為全局,並且我試圖使它生效-不僅是越野車/丑陋的-對我來說,它看起來像是黑客。 有沒有更清潔的方法來執行此操作,即在按下左窗格中的按鈕時管理中心窗格? 基本上,我希望將“中窗格”設為“ Canvas並在按下“左窗格”中的“按鈕”時執行GraphicsContext操作。

我正在按的是btnCopyFromClipboard使我可以在任何地方/任何地方繪制矩形(而不是將其限制在中心窗格/白板上)。 我想限制僅在中心窗格/白板內部繪制的矩形。

非常感謝通過此操作的某人的一些輸入/指針。

http://docs.oracle.com/javafx/2/layout/builtin_layouts.htm有助於我入門。

我也處於修復狀態,這是我在Oracle論壇中提出的一個問題,James給了我生動的答復。 請通過這個,它有你的答案

https://community.oracle.com/thread/2598756

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM