繁体   English   中英

如何使JLabel成为图像图标的完整大小?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM