Tôi cần thay thế nội dung ô lưới sau khi nhấp vào nút. Ví dụ: có Label và tôi cần thay thế nó bằng Text. Có thể với GridLayout? Tôi cần sử dụng SWT.Làm thế nào để thay thế nội dung của ô lưới trong SWT GridLayout?
6
A
Trả lời
8
Bạn chỉ cần bỏ Label
và đặt Text
mới vào vị trí của nó. GridLayout
sử dụng thứ tự z của trẻ em để xác định vị trí trong lưới, vì vậy bạn sẽ cần phải sử dụng moveAbove()
và moveBelow()
trên Text
để nhận được vị trí chính xác. Sau đó, gọi số layout()
trên phụ huynh. Ví dụ:
Text text = new Text(label.getParent(), SWT.BORDER);
text.moveAbove(label);
label.dispose();
text.getParent().layout();
Dưới đây là một widget đơn giản minh họa chính xác những gì tôi muốn nói:
public class ReplaceWidgetComposite
extends Composite
{
private Label label;
private Text text;
private Button button;
public ReplaceWidgetComposite(Composite parent, int style)
{
super(parent, style);
setLayout(new GridLayout(1, false));
label = new Label(this, SWT.NONE);
label.setText("This is a label!");
button = new Button(this, SWT.PUSH);
button.setText("Press me to change");
button.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
text = new Text(ReplaceWidgetComposite.this, SWT.BORDER);
text.setText("Now it's a text!");
text.moveAbove(label);
label.dispose();
button.dispose();
ReplaceWidgetComposite.this.layout(true);
}
});
}
}
Các vấn đề liên quan
- 1. Làm thế nào để xóa nội dung của WPF Grid?
- 2. WPF DataGrid: Làm thế nào để bạn có được nội dung của một ô?
- 3. Làm cách nào để hiển thị đường lưới trong GridLayout?
- 4. Tại sao nội dung không điền vào ô lưới?
- 5. Làm thế nào để bạn thay đổi kích thước nội dung văn bản của Silverlight?
- 6. thế nào để ẩn nội dung của div trong css
- 7. Làm thế nào để thay đổi nội dung của một phần tử span trong JavaScript
- 8. Làm thế nào để xóa nội dung của một jTable?
- 9. Làm thế nào để lát nội dung của một CALayer?
- 10. làm thế nào để in nội dung của PYTHONPATH
- 11. Làm thế nào để tự động thay thế nội dung trong TinyMCE?
- 12. thay thế nội dung div bằng javascript
- 13. jQuery Templates - Thay thế nội dung DIV
- 14. Làm thế nào để bạn có điều kiện tạo kiểu ô trong lưới dữ liệu Dojo?
- 15. jQuery: Làm thế nào để có được nội dung của một khoảng, trừ đi 1, và thay thế nội dung của span với số mới?
- 16. Thay thế nội dung tệp bằng PHP
- 17. Làm thế nào để cập nhật nội dung ViewPager?
- 18. Làm thế nào để chọn và thay đổi giá trị của ô bảng bằng jQuery?
- 19. thay thế cho nội dung của UIViewBài viết cho nội dung không dựa trên hình ảnh
- 20. Làm thế nào để thay đổi loại nội dung trong php?
- 21. Làm thế nào để ẩn một hỗn hợp SWT để nó không chiếm không gian?
- 22. Làm thế nào để có được kích thước của nội dung của một biến trong PHP
- 23. C# Làm thế nào để nén nội dung .ashx?
- 24. Làm thế nào để lấy lại nội dung từ Wiktionary?
- 25. Làm thế nào để kéo hình chữ nhật trên ô lưới trong XAML
- 26. moveRowAtIndexPath không làm mới nội dung của ô
- 27. Làm thế nào để tạo mẫu ô chỉnh sửa hộp kiểm trong ng-lưới?
- 28. Làm thế nào để vẽ một lưới vào một ô trong Python?
- 29. Làm thế nào để buộc nội dung refresh của markerInfoWindow trong Google Maps iOS SDK
- 30. Susy: Làm thế nào để mở rộng hộp nội dung để bao gồm lưới đệm là tốt?
Nó không làm việc một cách chính xác. Mã này gây ra chèn ô văn bản sau nhãn, nhưng tôi muốn thay thế nhãn. vứt bỏ() bằng cách nào đó không loại bỏ nhãn khỏi lưới vì nó vẫn hiển thị. – alhcr
Việc xử lý tiện ích con sẽ xóa tiện ích đó khỏi tiện ích con. Hãy thử gọi 'parent.layout (true)'. –
Có vẻ như nó không hoạt động như thế này. Tôi có shell.layout (true); và tôi biết nó hoạt động vì văn bản được chèn vào và tôi thấy nó, nhưng nhãn vẫn còn nhìn thấy được. Bạn đã sử dụng nó ở đâu đó và nó hoạt động chính xác? – alhcr