[英]How to make JLabels that are the full size of the image icon?
如何使我的图像变大,而不仅仅是在中心放大?
我的图像命名为1-12.jpg。
这是我的代码:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.BevelBorder;
public class GuiApp extends JFrame{
public static void main(String [] args){
final JFrame shirts = new JFrame("T-shirts");
JPanel panel = new JPanel(new GridLayout(4, 4, 3, 3));
for (int i = 1; i < 13; i++) {
JLabel l = new JLabel(new ImageIcon("T-shirts/"+i+".jpg"), JLabel.CENTER);
l.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
l.setFont(l.getFont().deriveFont(20f));
panel.add(l);
}//end of for loop
shirts.setContentPane(panel);
shirts.setSize(1000, 1000);
shirts.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
shirts.setVisible(true);
}//end of method
}//end of class
如何使我的图像全尺寸,而不只是放大到中心?
我假设您的意思是如何缩小图像,以使其完全显示在网格上的可用空间中?
查看“ 拉伸图标” (或“ ShrinkIcon
图标”,具体取决于哪个更符合您的要求)。 标签大小更改时,此图标将动态调整大小。 StretchIcon
允许您按比例缩放图标(默认)或填充可用空间。
由于GridLayout
使所有组件具有相同的大小,因此图标也将具有相同的大小。
基本代码应为:
//JLabel l = new JLabel(new ImageIcon("T-shirts/"+i+".jpg"), JLabel.CENTER);
StretchIcon icon = new StretchIcon("T-shirts/"+i+".jpg");
JLabel l = new JLabel(icon, JLabel.CENTER);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.