2011-05-30 20 views

cevap

9

Yapabileceğiniz bu

textArea.setPrefSize(Double.MAX_VALUE, Double.MAX_VALUE); 
-1

ile çözdüğünü bir css dosyası oluşturma ile.

textarea 
{ 
width://your width 
} 
+0

Bu çalışmıyor ... –

21

MAX_VALUE çözümü biraz rahatsız edici ve performans sorunlarına neden olabilir. Ayrıca, bunun cevabı ebeveyn kabınızın ne olduğuna bağlı olabilir. Neyse, bunu yapmak için daha iyi bir yolu şöyle olacaktır:

textArea.prefWidthProperty().bind(<parentControl>.prefWidthProperty()); 
textArea.prefHeightProperty().bind(<parentConrol>.prefHeightProperty()); 

Ayrıca ebeveyn bunun açık olanlardan daha ziyade boyutlara bilgisayarlı oluyor kullanarak, özellikle, gerçek özellikleriyle tercih özelliklere bağlamak isteyebilirsiniz:

textArea.prefWidthProperty().bind(<parentControl>.widthProperty()); 
textArea.prefHeightProperty().bind(<parentConrol>.heightProperty()); 

O ana kabın layoutChildren() yöntemini geçersiz olup uygulansın mı

textArea.resize(getWidth(), getHeight()); 

arayarak bağlanma kullanmadan bunu yapmak da mümkün super.layoutChildren() ... olsun

2

Bunu, TextArea'u BorderPane'a yerleştirerek elde edersiniz.

Stage stage = new Stage(); 
stage.setTitle("Resizing TextArea"); 

final BorderPane border = new BorderPane(); 
Scene scene = new Scene(border); 

TextArea textArea = new TextArea(); 
textArea.setStyle("-fx-background-color: #aabbcc;"); 

border.setCenter(textArea); 

primaryStage.setScene(scene); 
primaryStage.setVisible(true); 

Ayrıca bir HBox veya VBox içine yerleştirebilirsiniz. Daha sonra yeniden boyutlandırma yatay/dikey yön ile sınırlıdır. Bu bir sorun olup olmadığından emin değil.

0
<TextArea style="-fx-pref-height: 10px;"/> 
İlgili konular