我的程序中有一个显示图像的标签。问题是,如果选择的图像大于标签,则只显示部分图像。
如何显示整个图像?
image = new ImageIcon(movpath);
l5=new JLabel(image);
l5.setBounds(360,300,200,200);
p1.add(l5);
参考上述代码所需的帮助
答案 0 :(得分:2)
无需为此编写自定义代码。更改图标时,JLabel将自动调整大小。
问题在于您使用的是null布局,并且大小固定为(200,200),因此标签无法增长或缩小。
如果要使用固定区域显示标签,请将标签添加到滚动窗格并设置滚动窗格的首选大小。然后,如有必要,将出现滚动条。
通过使用布局管理器摆脱null布局并设计合适的GUI。你会为自己省下很多悲伤。
由于您提出了很多初学者问题,我建议您先阅读Swing tutorial了解基础知识。布局管理人员得到了很好的覆盖。
答案 1 :(得分:1)
为上述场景找到了方法。要调整大小,请使用以下代码:
image = new ImageIcon(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);
答案 2 :(得分: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);
}
};