0
我正在尝试构建一个窗口,其中一个图片覆盖了屏幕。图片是JLabel,窗口是JFrame。在尝试了无数种方法并查找了几个小时的教程之后,我还没有想出如何做到这一点。我同意,这是一个非常简单的问题,但我根本不明白我该如何解决这个问题。这里是我的代码,我已经试过(我注释掉了一些事情,我之前试过):构建简单窗口时出错?
package Buttons;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.GridLayout;
public class Mewindow extends JFrame {
private JFrame mewindow;
private JLabel mepic = new JLabel(new ImageIcon("me.png"));
public Mewindow() {
super("Here is a picture of ME!");
mewindow.setLayout(new GridLayout(1, 0, 0, 0));
// Icon me = new ImageIcon(getClass().getResource("me.png"));
add(mepic);
mewindow.setVisible(true);
mewindow.setSize(250, 250);
mewindow.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
}
谢谢你这么多,你正在阅读这篇文章的时候,我真的很感谢你的投入帮助的努力一位程序员!
谢谢,这是非常好的解释。我想我应该直接将图像放入JLabel本身!你是什么意思“不要直接从JFrame进行扩展,而是使用JPanel,然后将其添加到JFrame的实例,你的代码将更加可重用”?另外,我的图像并没有填满整个窗口,为什么?虽然......可能是图像本身? –
通常不鼓励从顶级容器扩展,因为它会将您锁定到单个用例中,而且您并没有真正为课程添加任何新功能。它还带有一些其他管理问题,最好留给实施。 'JLabel'不会缩放图像,事实上,没有Swing组件,相反,你需要自己实现这个功能 – MadProgrammer
看看[这个例子](http://stackoverflow.com/questions/14548808/scale-the-imageicon-automatically-to-label-size/14553003#14553003)和[this example](http://stackoverflow.com/questions/11959758/java-maintaining-aspect-ratio-of-jpanel-background -image/11959928#11959928)和[this example](http://stackoverflow.com/questions/14115950/quality-of-image-after-resize-very-low-java/14116752#14116752) – MadProgrammer