Java Swing, 3X4 gibi bir dizi widget için bir boyut belirtmenize izin veren GridLayout
'a sahiptir. Widget'ler daha sonra işgal ettikleri paneli doldurur. JavaFX'te nasıl benzer bir etkiye sahip olursunuz?Bir javafx ızgara bölümünü doldurmak için nasıl düğmeler alırım?
cevap
Bir düğümün hücresine ayrılmış alanı bir ızgara bölmesinde nasıl dolduracağınızı soruyorsunuz.
Bunu yapmanın birkaç yolu vardır. Ya düğümlere GridPane
e özgü özellik ayarlarını uygulamak için statik GridPane
yöntem kullanabilirsiniz:
GridPane grid = new GridPane();
for (int rowIndex = 0; rowIndex < numRows; rowIndex++) {
RowConstraints rc = new RowConstraints();
rc.setVgrow(Priority.ALWAYS) ; // allow row to grow
rc.setFillHeight(true); // ask nodes to fill height for row
// other settings as needed...
grid.getRowConstraints().add(rc);
}
for (int colIndex = 0; colIndex < numColumns; colIndex++) {
ColumnConstraints cc = new ColumnConstraints();
cc.setHgrow(Priority.ALWAYS) ; // allow column to grow
cc.setFillWidth(true); // ask nodes to fill space for column
// other settings as needed...
grid.getColumnConstraints().add(cc);
}
:
GridPane.setFillWidth(myButton, true);
GridPane.setFillHeight(myButton, true);
başka yolu grid bölmesinde kendisinde sütun kısıtlamaları ve satır kısıtlamaları belirtmektir Her iki durumda da, ızgara bölmesinin yaptığı büyütme isteğine saygı göstermeleri için düğümlerin büyümesine izin vermeniz gerekir. Yani, ör .: (satır ve sütun kısıtlamaları yöntemini kullanarak)
Button myButton = new Button("Click");
myButton.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
grid.add(myButton, 0, 0);
SSCCE:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Priority;
import javafx.scene.layout.RowConstraints;
import javafx.stage.Stage;
public class KeyPad extends Application {
@Override
public void start(Stage primaryStage) {
GridPane grid = new GridPane();
int numRows = 4 ;
int numColumns = 3 ;
for (int row = 0 ; row < numRows ; row++){
RowConstraints rc = new RowConstraints();
rc.setFillHeight(true);
rc.setVgrow(Priority.ALWAYS);
grid.getRowConstraints().add(rc);
}
for (int col = 0 ; col < numColumns; col++) {
ColumnConstraints cc = new ColumnConstraints();
cc.setFillWidth(true);
cc.setHgrow(Priority.ALWAYS);
grid.getColumnConstraints().add(cc);
}
for (int i = 0 ; i < 9 ; i++) {
Button button = createButton(Integer.toString(i+1));
grid.add(button, i % 3, i/3);
}
grid.add(createButton("#"), 0, 3);
grid.add(createButton("0"), 1, 3);
grid.add(createButton("*"), 2, 3);
Scene scene = new Scene(grid);
primaryStage.setScene(scene);
primaryStage.show();
}
private Button createButton(String text) {
Button button = new Button(text);
button.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
button.setOnAction(e -> System.out.println(text));
return button ;
}
public static void main(String[] args) {
launch(args);
}
}
Bunun için JavaFX'te bir GridPane kullanabilirsiniz. Bu birinci satır ve GridPane ilk sütuna bir etiket katacak Java Code olarak,
GridPane pane = new GridPane();
bunu oluşturabilir ve
Label label = new Label();
pane.add(label, 0,0);
gibi örneğin kendisine farklı düğüm eklemek . Daha karmaşık GUI'ler için SceneBuilder'ı kullanabilirsiniz.
Bir ızgara bölmesine şeyler eklemeyi biliyorum. Benim istediğim şey, gridpanın kapladığı bölgeyi tamamen doldurmak için bir dizi düğme demek. – ncmathsadist
- 1. Javafx işlev aracılığıyla düğmeler nasıl oluşturulur?
- 2. ItemsControl'ü doldurmak için denetimlerin genişletilmesi
- 3. JavaFX
- 4. Zaman bölümünü korurken, bir DateTime'ın yalnızca tarih bölümünü nasıl değiştirebilirim?
- 5. Dokunun bir bölümünü nasıl güncellerim?
- 6. JavaFX
- 7. Dizenin bir bölümünü nasıl karşılaştırabilirim?
- 8. JFrame'de bir ızgara çizme
- 9. PagingDatasource ızgara görüntüleme için
- 10. Adından nasıl bir seçici alırım?
- 11. Android'de düğmeler için kenarlık nasıl eklenir
- 12. Düğmeler rastgele nasıl konumlandırılır?
- 13. XSL bir öğeye dayalı bir değer doldurmak için nasıl 1.0
- 14. MongoDB'de bir dizenin bir bölümünü nasıl ararım?
- 15. Nasıl programlanır filer.fields.image.FilerImageField doldurmak veya oluşturmak için?
- 16. Ekranı doldurmak için Düzen nasıl uzatılır?
- 17. FXML (JavaFX)
- 18. Bir görüntünün bir bölümünü JAVA
- 19. Bir javafx grafik efsanesinin metni nasıl sarılır?
- 20. Kalan alanı doldurmak için bir kutu seçin
- 21. Bir dizenin bir bölümünü java'ya nasıl alırsınız?
- 22. Farklı düğmeler için farklı bir oturum değişkeni nasıl atanır
- 23. Bir Gezinme Çubuğuna çoklu düğmeler nasıl eklenir?
- 24. Düzgün çalışmak için typed.js'yi nasıl alırım?
- 25. FileContentResult'u performans için nasıl önbelleğe alırım?
- 26. Yuvarlatılmış düğmeler
- 27. StatusBarItem'i doldurmak için ProgressBar'ı edinin
- 28. Çevrimiçi formu doldurmak için bir makro oluşturmak, döngü yanlış ayarlanmış
- 29. Düğmeler yeniden boyutlandırılırken düğmeler hareket eder
- 30. ARGV doldurmak için kabukların yaptığı bir dizeyi nasıl bölebilirim?
Mükemmel! Teşekkürler! + 1 ve kabul et. – ncmathsadist
CSS'de yapmak için: (Benim durumumda, maxwidth sonsuzluğunu ayarlamak yeterliydi) .mygridPane Button { \t -fx-max-width: sonsuzluk; } ' – pdem