所以,我最近开始学习Java,尽管有几个问题和我还没有理解的东西,我真的非常喜欢它,它让我继续学习它。所以,考虑到它是我的第一个编程语言,请耐心等待任何" noob"我犯的错误。
所以,我使用JFrame创建了一个全屏窗口:
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Main extends JFrame {
public static void main(String[] args) {
//Window
JFrame mainWindow = new JFrame("Day One");
mainWindow.setExtendedState(JFrame.MAXIMIZED_BOTH);
mainWindow.setUndecorated(true);
mainWindow.setVisible(true);
//End Window
}
}
然后我尝试通过添加以下内容将一个背景图像添加到窗口中:
mainWindow.setLayout(new BorderLayout());
mainWindow.setContentPane(new JLabel(new ImageIcon("C:\\Users\\Recordings\\Desktop\\Day One\\Images\\Main-Background-Image.png")));
mainWindow.setLayout(new FlowLayout());
我找到了这段代码here,但它根本不起作用。在这个网站上有两种不同的制作方法,但是我已经尝试了两种方法,但都没有。
我还在stackoverflow中搜索了类似的问题,但是所有这些问题都没有得到答复,或者用与我相同的例子回答。
我真的希望我已经足够清楚了,非常感谢你的时间
编辑:
正如所建议的那样,我将长单一陈述分开:
mainWindow.setContentPane(new JLabel(new ImageIcon("C:\\Users\\Recordings\\Desktop\\Day One\\Images\\Main-Background-Image.png")));
进入三个更简单的调试语句:
ImageIcon image = new ImageIcon("C:\\Users\\Recordings\\Desktop\\Day One\\Images\\Main-Background-Image.png");
JLabel label = new JLabel(image);
mainWindow.setContentPane(label);
答案 0 :(得分:1)
只是一些提示
尽管如此,这里有一些额外的代码。它创建了一个面板来保持jlabel(图像),并将该面板添加到框架中。它使用快速方法创建图像图标,您只需传入文件名即可。此方法假定您已在项目目录中创建了名为resources的文件夹,并将图像放在那里。
public static void main(String[] args) {
//Window
JFrame mainWindow = new JFrame("Day One");
mainWindow.setExtendedState(JFrame.MAXIMIZED_BOTH);
mainWindow.setUndecorated(true);
//Create image
JLabel imageHolder = new JLabel();
imageHolder.setIcon(makeImageIcon("example.png"));
//Add image to panel, add panel to frame
JPanel panel = new JPanel();
panel.add(imageHolder);
mainWindow.add(panel);
mainWindow.setVisible(true);
}
//Creates imageicont from filename
public static ImageIcon makeImageIcon(String filename) {
BufferedImage myPicture = null;
try {
myPicture = ImageIO.read(new File("resources/" + filename));
} catch (IOException e) {
e.printStackTrace();
}
return new ImageIcon(myPicture);
}
希望这有帮助