2

インターフェイス内にペインがあります。そのペインに Shape オブジェクトを追加してドラッグします。1 つのシェイプがペインの視覚的な境界に達したときにペインを大きくするにはどうすればよいですか。プロトタイプとして、マウスをクリックするたびに大きくするようにしています。Pane は、ScrollPane の子 (内) です。これが私のコードです:

    paneArea.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent mouseEvent) {
            System.out.println(paneArea.getWidth()+" "+paneArea.getHeight());
            paneArea.resize(paneArea.getWidth() + 100, paneArea.getHeight() + 100);                
            System.out.println(paneArea.getWidth()+" "+paneArea.getHeight());
        }
    });

2 回クリックすると、次の結果が得られます。

602.0 574.0
702.0 674.0
602.0 574.0
702.0 674.0

そのため、ペインは基本的に簡単にサイズ変更してから元のサイズに戻ります。FXML では、最大の高さと幅は MAX_VALUE だけでなく USE_PREF_SIZE にも設定されます。resize を呼び出す前に maxWidth/height を増やそうとしましたが、違いはありませんでした。何かアドバイス?

4

2 に答える 2

2

私は間違ったメソッドと fxml オプションを使用しています。その方法は、setPrefSize メソッドを使用して、fxml ファイルの USE_PREF で最大サイズを設定することでした。

于 2013-03-17T17:09:27.337 に答える
0

あなたのコードは間違っています。使用する代わりに

paneArea.resize(paneArea.getWidth() + 100, paneArea.getHeight() + 100); 

使用する

paneArea.setPrefWidth(paneArea.getWidth() + 100) ; 
paneArea.setPrefHeight(paneArea.getHeight)() + 100) ;
于 2014-03-24T06:46:17.973 に答える