有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java自动调整标签内容的大小

我的程序中有一个显示图像的标签。问题是,如果选择的图像大于标签,则仅显示部分图像

如何显示整个图像

image = new ImageIcon(movpath);     
l5=new JLabel(image);
l5.setBounds(360,300,200,200);
p1.add(l5);

参考上述代码时需要帮助


共 (3) 个答案

  1. # 1 楼答案

    要将图像大小调整为JLabel的大小,需要执行以下操作:

    l5 = new JLabel ()
    { 
        public void paintComponent (Graphics g) 
        { 
            super.paintComponent (g); 
            g.drawImage (image.getScaledInstance(getWidth(), getHeight(), Image.SCALE_DEFAULT), 0, 0, getWidth (), getHeight (), this); 
        } 
    }; 
    
  2. # 2 楼答案

    为上述场景找到了道路。要调整大小,请使用以下代码:

    图像=新图像图标(movpath)

        l5 = new JLabel ()
        { 
    
            public void paintComponent (Graphics g) 
            { 
                super.paintComponent (g); 
                g.drawImage (image.getImage(), 0, 0, getWidth (), getHeight (), null); 
            } 
        }; 
        l5.setBounds(360,300,200,200);
        p1.add(l5);
        l5.addMouseListener(this);
    
  3. # 3 楼答案

    没有必要为此编写自定义代码。当您更改图标时,JLabel将自动调整自身大小

    问题是您使用的是空布局,并且大小固定为(200200),因此标签不能增长或收缩

    如果希望有固定区域显示标签,请将标签添加到滚动窗格并设置滚动窗格的首选大小。然后,如有必要,将显示滚动条

    摆脱空布局,使用布局管理器设计适当的GUI。你会省去很多悲伤

    既然你问了很多初学者的问题,我建议你从阅读Swing tutorial开始了解基础知识。布局管理器被很好地覆盖