vì vậy tôi có JButtons này để thêm Biểu tượng. Các biểu tượng quá lớn ban đầu, vì vậy tôi thay đổi kích thước chúng trước, và nó hoạt động tốt. Ngoại trừ khi tôi thay đổi kích thước cửa sổ, kích thước thay đổi của JButtons, nhưng không phải là Biểu tượng, điều này có vấn đề.Biểu tượng JButton tự động thay đổi kích thước
Có cách nào để có Biểu tượng chỉ cần điền vào JButton được đính kèm không? Bit mã để làm cho nó rõ ràng hơn:
public JewelClass(){
setBackground (new Color (30,30,30));
addActionListener(this);
setLayout(new GridLayout());
ImageIcon icon = new ImageIcon(src/carre.jpg);
setIcon (resizeIcon(icon,60,60));
}
resizeIcon là một chức năng cá nhân, mà phải mất một biểu tượng, một tham số chiều rộng và một tham số chiều cao, và trả về một biểu tượng thay đổi kích cỡ (rõ ràng). Tôi đã thử thay đổi Bố cục, nhưng nó không thay đổi bất cứ điều gì. Tôi đã cố gắng nhận được chiều rộng/chiều cao của JButton, nhưng kể từ khi họ không tồn tại được nêu ra khi biểu tượng được thêm vào, nó không hoạt động.
Các bạn có biết cách vượt qua điều này không? Nó không phải là một biểu tượng, miễn là JButton của tôi được lấp đầy với hình ảnh tôi cho nó, nó tuyệt vời :)
Cảm ơn!
Để có cách tiếp cận đơn giản hơn, hãy thay đổi thành 'int margin = 0; Dimension dim = this.getParent(). GetSize(); 'mà không cần phải ghi đè' getMinimumSize() 'và' getPreferredSize() 'vì thành phần cha có lề của nó đã được đặt là –
Tuyệt vời! Vì vậy, nó hoạt động để vẽ một hình dạng, nhưng điều duy nhất là, một khi tôi thay thế 'g.setColor (Color.red); g.fillRect (lề, lề, dim.width - margin * 2, dim.height - margin * 2); ' bởi ' Biểu tượng biểu tượng = new ImageIcon ("src/triangle.jpg"); icon.paintIcon (điều này, g, 60, 60), ' , nó dừng hiển thị bất cứ điều gì cả. Bạn có biết tại sao điều này không? –
@Mikalichov xin vui lòng xem sửa đổi của tôi – mKorbel