1

我正在使用 netbeans 设计一个 JFrame。 在此处输入图像描述

现在当我编译和运行时。它执行并打开一个窗口在此处输入图像描述

现在的问题是当我最大化窗口时..我希望图像或 Jlabel 覆盖 jframe 的宽度。在此处输入图像描述

所以我该怎么做。请帮助

4

2 回答 2

4

首先停止使用视觉设计器。现在停下来。立即地。忘记它的存在。视觉设计师创建不可维护的代码。它们在开始时会节省 5 分钟,但会让您在之后花费数小时。

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

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

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

于 2013-08-12T16:04:15.073 回答
3

JLabel 总是以实际大小绘制图标。

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

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

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

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

  1. 使用背景面板
  2. 在 JLabel 上使用拉伸图标
于 2013-08-12T16:02:31.390 回答