Tôi có một ứng dụng JavaFX 2.0 với FXML. Tôi muốn các thành phần (TextFields, ComboBoxes, bố cục, vv) được thay đổi kích thước khi một cửa sổ với một ứng dụng được thay đổi kích cỡ. Vậy ...Làm cách nào để liên kết thay đổi kích thước với kích thước của các thành phần?
- Vì nó được viết trên Oracle documentation for JavaFX, để làm một cái gì đó như thế này với hình dạng, có một vài tính chất đặc biệt để hình dạng:
Khi xây dựng các ứng dụng GUI với JavaFX, bạn sẽ nhận thấy rằng các lớp nhất định trong API đã triển khai các thuộc tính. Ví dụ: lớp
javafx.scene.shape.Rectangle
chứa thuộc tính choarcHeight
,arcWidth
,height
,width
,x
vày
. Đối với mỗi thuộc tính này, sẽ có các phương thức tương ứng phù hợp với các quy ước được mô tả trước đó. . Ví dụ,getArcHeight()
,setArcHeight(double)
,arcHeightProperty()
, mà cùng nhau chỉ ra (cho cả nhà phát triển và các công cụ) mà tài sản được tồn tại *
Để thêm người nghe đến một giai đoạn tôi phải làm một cái gì đó như:
stage.resizableProperty().addListener(new ChangeListener<Boolean>(){ @Override public void changed(ObservableValue<? extends Boolean> arg0, Boolean arg1, Boolean arg2){ throw new UnsupportedOperationException("Not supported yet."); } });
Vì vậy, có hai câu hỏi:
- Để làm cho một số ràng buộc tôi phải có được giai đoạn của tôi trong lớp điều khiển. Vậy - làm thế nào tôi có thể có được một giai đoạn trong một lớp điều khiển?
- Có vẻ như các điều khiển giao diện người dùng không có bất kỳ thuộc tính width \ height nào, để được ràng buộc với một cái gì đó. Hoặc có lẽ tôi đã không tìm thấy chúng.
Vì vậy, làm cách nào tôi có thể giải quyết được sự cố của mình?
UPD. Giới thiệu về Trình tạo cảnh cho Sergey Grinev: Khi tôi sử dụng Ctrl + K trên thành phần của mình (yêu cầu nó chiếm toàn bộ khu vực của thành phần chính) - mọi thứ đều ổn.
Nhưng điều gì sẽ xảy ra nếu tôi muốn thông báo cho thành phần của mình chiếm 50% của một khu vực? Để kiểm tra, tôi có một tab có hai VBox trên đó. Chiều rộng của tab là 100px. Chiều rộng của Vbox là 50px cho mỗi độ rộng. VBox1 có x1 = 0 và x2 = 50 và VBox2 có x1 = 50 và x2 = 100. Sau đó, tôi đổi kích thước cửa sổ của mình bằng ứng dụng JavaFX. Bây giờ tôi có tab Width = 200px. Nhưng các ô ngang độ rộng của tôi vẫn còn = 50px: VBox1 có x1 = 0 và x2 = 50 và VBox2 có x1 = 150 và x2 = 200. Và tôi cần họ được VBox1 x1 = 0 và x2 = 100 và VBox2 x1 = 100 và x2 = 200. Trường hợp giá trị x1 và x2 là tọa độ của các góc VBoxes.
Trình tạo cảnh có thể giúp tôi trong tình huống này như thế nào?
Tôi đã phản hồi nhận xét của bạn như là một bản cập nhật cho câu hỏi, như tôi đã được ra khỏi nhân vật. –
hãy xem cập nhật, vui lòng. –
Typo - GripPane – Avik