如何根据窗口调整jlabel的大小

时间:2013-08-12 15:56:23

标签: java swing netbeans jframe jlabel

我正在使用netbeans来设计JFrame。 enter image description here

现在当我编译并运行时。它执行并打开一个窗口enter image description here

现在的问题是当我对窗口进行最大化时..我希望图像或Jlabel覆盖jframe的宽度。 enter image description here

那怎么办呢.Plz帮助

2 个答案:

答案 0 :(得分:4)

首先停止使用视觉设计师。现在停下来立即。忘了它存在。可视化设计者创建不可维护的代码。它们在开始时节省了5分钟,导致您花费数小时。

现在,看看任何java布局教程。例如,这一个:http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

一旦您阅读并理解它,请返回您的应用程序。想想你需要什么样的布局。设计应用程序。实施它。如果您仍有问题,在合理的时间内无法自行解决,请再次询问更具体的问题。

当您了解布局足够好并希望通过大量对话框实现实际应用程序时,请查看MigLayout

答案 1 :(得分:3)

JLabel总是以实际尺寸绘制图标。

如果您想要动态缩放图像,则需要进行自定义绘画。基本上,您将使用以下代码覆盖JComponent的paintComponent(..)方法:

super.paintComponent(g);
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);

当然,在创建类时,您需要将图像作为参数传递。它还假定您将组件直接添加到默认使用BorderLayout的内容窗格中。

对于更高级或更灵活的解决方案,您可以:

  1. 使用Background Panel
  2. 在JLabel上使用Stretch Icon