簡體   English   中英

javafx更改swingNode的大小

[英]javafx change size of swingNode

我用JavaFx編寫了一個簡單的應用程序,想在其中使用swingNode,所以我在更改節點的大小或位置時遇到問題

public class SwingFx extends Application {

    @Override
    public void start (Stage stage) {
        final SwingNode swingNode = new SwingNode();

        createSwingContent(swingNode);

        StackPane pane = new StackPane();
        pane.getChildren().add(swingNode);

        stage.setTitle("Swing in JavaFX");
        stage.setScene(new Scene(pane, 250, 150));
        stage.show();
    }

    private void createSwingContent(final SwingNode swingNode) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JButton jButton = new JButton("Click me!");
                jButton.setBounds(0,0,5,5);
                swingNode.setContent(jButton);

            }
        });
    }
}

我設置了JButton的邊界,但是它不起作用,當我運行該應用程序時,該按鈕出現在中間,並且它是默認的寬度和高度

如果您想讓setbounds()工作,則應使用父容器並將其布局設置為null

public class SwingFx extends Application {

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

    @Override
    public void start (Stage stage) {
        final SwingNode swingNode = new SwingNode();

        createSwingContent(swingNode);

        StackPane pane = new StackPane();
        pane.getChildren().add(swingNode);

        stage.setTitle("Swing in JavaFX");
        stage.setScene(new Scene(pane, 250, 150));
        stage.show();
    }

    private void createSwingContent(final SwingNode swingNode) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JButton jButton = new JButton("Click me!");
                jButton.setBounds(10,10,50,50);

                JPanel panel = new JPanel();
                panel.setLayout(null);
                panel.add(jButton);

                swingNode.setContent(panel);

            }
        });
    }
}

暫無
暫無

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

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