java动态调整图像大小以适应网格布局中的网格
我想使用 JButton 的自定义子类制作国际象棋类型的棋盘。我的问题是我的棋子图像有点太小了。有没有办法让图像精确缩放到网格布局中每个网格的大小?如果我调整 Jframe 的大小,网格的大小也会改变。有没有办法让图像在调整整个框架大小时动态调整大小?
I want to make a chess type board using a custom subclass of JButton. My problem is that my images of the chess pieces are a bit too small. Is there a way I can get the image to scale to exactly the size of each grid in my gridlayout? If I resize the Jframe, the grids will change size as well. Is there a way to get the image to resize dynamically upon resizing of the whole frame?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为此,您有 3 个选项
1) 使用 Gimp、Photoshop 等调整图像本身的大小。
2) 动态创建图标
3) 在框架的油漆上,您可以使用比例
You have 3 option for this
1) Resize the images themselves using Gimp, Photoshop, etc.
2) Create an icon dynamically
3) on the paint of your frame you can use scale
您可以对图像进行一些转换,但它可能看起来有点难看。如果图像足够小,也许您可以强制按钮的最小尺寸,这样如果框架尺寸非常小,就会出现滚动条。另一种选择可能是拥有两组或三组不同的图像,其尺寸经过良好缩放,然后将它们交换为不同的板尺寸。
You could apply some transformation to the images but it might look a little ugly. If the images are small enough, maybe you can just force a minimum size of the button so that a scrollbar will appear if the frame is sized really small. Another option might be to have two or three different sets of the images at nicely scaled sizes, and swap them out for different board sizes.
另一种选择是覆盖绘图函数以填充所有可用位置:
这是一个示例:
With:
And:
这将为您提供:
Another alternative will be to override the paint function to fill all the available place:
Here is an example:
With:
And:
That will give you: