【问题标题】:Is it possible to resize a Jlabel?是否可以调整 Jlabel 的大小?
【发布时间】:2015-02-10 20:45:21
【问题描述】:

当鼠标进入包含图片的 JLabel 时,我想调整图片的大小。我知道如何调整图片大小,事实上,它现在可以工作了,但问题是 de JLabel 并没有改变他的大小!

我试过了: MyLabel.setSize(360,580); MyLabel.resize(360,580); MyLabel.setPreferredSize(360.580);

这三个选项都不会改变 JLabel 的大小。这是当前代码:

    private void don1MouseExited(java.awt.event.MouseEvent evt) {                                 
    don1.setSize(260,330);
    aux2 = new ImageIcon(aux.getImage().getScaledInstance(260, 330, Image.SCALE_DEFAULT)); //resize the image 
    don1.setIcon(aux2);
}

有什么帮助吗? 谢谢……

【问题讨论】:

  • 基本上,您只能通过创建窗口部分的缩放图像来调整到特定尺寸。

标签: java image swing resize jlabel


【解决方案1】:

您只需要在JLabel上设置图标,其余的应该跟随没有任何其他代码。

看这个例子:

import java.awt.FlowLayout;
import java.awt.Image;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class TestResizingLabel {

    protected void initUI() throws MalformedURLException {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        final ImageIcon originalImage = new ImageIcon(new URL(
                "http://mgl.skyrock.net/big.138643852.jpg?78138742"));
        final ImageIcon scaledImage = new ImageIcon(originalImage.getImage()
                .getScaledInstance(originalImage.getIconWidth() / 4,
                        originalImage.getIconHeight() / 4, Image.SCALE_SMOOTH));
        final JLabel label = new JLabel(scaledImage);
        label.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseEntered(MouseEvent e) {
                System.err.println("in");
                label.setIcon(originalImage);
            }

            @Override
            public void mouseExited(MouseEvent e) {
                label.setIcon(scaledImage);
            }
        });
        panel.add(label);
        frame.add(panel);
        frame.setSize(600, 600);
        frame.setVisible(true);
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    new TestResizingLabel().initUI();
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                }
            }
        });
    }

}

【讨论】:

    猜你喜欢
    • 2020-11-30
    • 1970-01-01
    • 2021-07-20
    • 2014-05-05
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多