gpt4 book ai didi

java - 构建简单窗口时出错?

转载 作者:行者123 更新时间:2023-12-02 04:25:45 26 4
gpt4 key购买 nike

我正在尝试构建一个窗口,其中包含一张覆盖屏幕的图片。图片是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);
}

}

非常感谢您花时间阅读本文,我非常感谢您为帮助程序员同行所付出的努力!

最佳答案

问题#1...

您没有 main 方法,因此除非您从另一个类创建该类,否则它不会运行...

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}

Mewindow frame = new Mewindow();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}

问题 #2...

现在,您将遇到 NullPointerException,因为 mewindow 尚未初始化,但是,您实际上并不需要它,因为您正在使用其中的值类的构造函数,因此如果您尝试初始化它,最终会得到 StackOverflowException ......但无论如何使用它都没有意义......

public class Mewindow extends JFrame {

private JLabel mepic
public Mewindow() {

super("Here is a picture of ME!");

setLayout(new GridLayout(1, 0, 0, 0));

mepic = new JLabel(new ImageIcon(getClass().getResource("me.png")));
add(mepic);

setVisible(true);
setSize(250, 250);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
}

现在您的代码假定 me.pngMewindow 存储在同一包中,请注意这一点。

并且,生成的代码实际运行(替换为我自己的图片)

MeWindow

建议...

不要直接从 JFrame 扩展,而是使用 JPanel ,然后将其添加到 JFrame 的实例中,您的代码将是更可重用

关于java - 构建简单窗口时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32216420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com