2011-08-24 48 views
9

Làm cách nào để chỉ thay đổi chiều rộng hoặc chiều cao của thành phần yêu cầu đối tượng Dimension? Hiện tại tôi làm như sau:Kích thước, Chỉ thay đổi chiều rộng/chiều cao

jbutton.setPreferredSize(new Dimension(button.getPreferredSize().width, 100)); 

Nhưng tôi có cảm giác rằng tôi đang làm sai cách. Cách tốt nhất để tiếp cận điều này nếu có cách nào tốt hơn?

+5

sai cơ bản bạn đang làm là gọi setPreferredSize với bất kỳ thứ nguyên nào ;-) Bạn sẽ can thiệp vào bất kỳ phép tính gợi ý kích thước nội bộ nào trên một phần của thành phần. Đơn giản: không, không bao giờ. Thay vào đó, hãy sử dụng Layout Manager. – kleopatra

Trả lời

2

Tôi đã thực hiện theo cách mà Kleopatra đã nói. Không thay đổi tùy chọnSize nhưng cho phép trình quản lý bố cục thực hiện công việc. Vì đây là cách thích hợp để thay đổi kích thước của một thành phần.

+2

không thể chống lại nhận xét, trình biên dịch ngữ pháp của tôi là ném một lỗi 'SentenceFragment' (nhưng tôi sẽ giữ bàn tay grubby của tôi tắt bài viết của bạn) :) – Ben

13

Trước hết bạn không thay đổi kích thước của JButton. Bạn đang xác định kích thước mong muốn mong muốn, có thể cuối cùng được áp dụng cho JButton của bạn tùy thuộc vào LayoutManager của thành phần mà nó được chèn vào.

Đối với những lo ngại, việc sử dụng đối tượng Thứ nguyên là tốt. Cuối cùng, bạn có thể truy cập trực tiếp trường Thứ nguyên:

Dimension d = button.getPreferredSize(); 
d.height = 10; 
jbutton.setPreferredSize(d); 

nhưng điều đó cũng khá giống nhau.

+0

@Patrick: có lẽ tôi đã không hiểu câu hỏi của bạn. – Heisenbug

+0

Bạn đã thực hiện chỉnh sửa cho câu hỏi của mình và câu trả lời cho câu hỏi ngay bây giờ. Có vẻ như tôi không thể xóa nhận xét trước đó, vì vậy tôi cảm ơn bạn vì câu trả lời mới hơn của bạn. – Patrick

-1

Bạn có thể làm điều đó như thế này:

jbutton.getPreferredSize().height = 100; 

Tham trong tài khoản đó là tài sản preferredSize chỉ được sử dụng bởi các nhà quản lý bố trí nhất định.

+0

Bạn không thể làm như thế vì getPreferredSize() có thể trả lại một bản sao của kích thước ưa thích. – ceklock

Các vấn đề liên quan