我正在使用 netbeans 设计一个 JFrame。
现在当我编译和运行时。它执行并打开一个窗口
现在的问题是当我最大化窗口时..我希望图像或 Jlabel 覆盖 jframe 的宽度。
所以我该怎么做。请帮助
首先停止使用视觉设计器。现在停下来。立即地。忘记它的存在。视觉设计师创建不可维护的代码。它们在开始时会节省 5 分钟,但会让您在之后花费数小时。
现在,看看任何 java 布局教程。例如这个:http ://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
一旦您阅读并理解了它,请返回您的应用程序。想想你需要什么布局。设计应用程序。实施它。如果您仍有无法在合理时间内自行解决的问题,请再次提出更具体的问题。
当您足够了解布局并希望使用大量对话框实现实际应用程序时,请查看MigLayout。
JLabel 总是以实际大小绘制图标。
如果要动态缩放图像,则需要进行自定义绘画。基本上,您将使用以下代码覆盖 JComponent 的 paintComponent(..) 方法:
super.paintComponent(g);
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
当然,您需要在创建类时将图像作为参数传递。它还假设您将组件直接添加到默认情况下使用 BorderLayout 的内容窗格。
对于更高级或更灵活的解决方案,您可以: