因此,我最近开始学习Java,尽管有很多问题和我还不了解的东西,但我真的很喜欢Java,这使我得以继续学习下去。因此,考虑到这是我有史以来的第一种编程语言,请耐心考虑我犯的任何“菜鸟”错误。
因此,我使用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());
我在这里找到了此代码,但根本无法正常工作。在这个网站上,有两种不同的制作方法,但我都尝试了两种方法,但均无效果。
我也在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);
几点提示
话虽如此,这是您的代码加上一些额外的东西。它创建一个面板来保存jlabel(image),并将该面板添加到框架中。它使用一种快速的方法创建一个图像图标,您所要做的就是传递文件名。此方法假定您已在项目目录中创建了名为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);
}
希望这可以帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句