Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将ImageIcon设置为全屏_Java_Image_Swing_Imageicon - Fatal编程技术网

Java 将ImageIcon设置为全屏

Java 将ImageIcon设置为全屏,java,image,swing,imageicon,Java,Image,Swing,Imageicon,我制作了一个Board类,其中我使用ImageIcon导入一个图像,而不是制作具有指定分辨率的图片,我希望它对于任何类型的显示器都是全屏的 public Board() { p = new Dude(); addKeyListener(new AL()); setFocusable(true); ImageIcon i = new ImageIcon("C:/test.jpg"); img = i.getImage

我制作了一个Board类,其中我使用ImageIcon导入一个图像,而不是制作具有指定分辨率的图片,我希望它对于任何类型的显示器都是全屏的

public Board() {
        p = new Dude();
        addKeyListener(new AL());
        setFocusable(true);
        ImageIcon i = new ImageIcon("C:/test.jpg");

        img = i.getImage();
        time = new Timer(5, this);
        time.start();
    }
我以前使用过此代码:

public class MainMenu2 {
    MainMenu2() throws IOException{
        JFrame Main_Menu = new JFrame("Main Menu");
        Main_Menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        final int widthScreen = screenSize.width;
        final int heightScreen = screenSize.height;

        BufferedImage backgroundImage = ImageIO.read(new File("P://My Pictures//background1.jpg"));
        JLabel background = new JLabel(new ImageIcon(backgroundImage));
        Image scaleBackground = backgroundImage.getScaledInstance(widthScreen, heightScreen, Image.SCALE_SMOOTH);
        ImageIcon imageIcon = new ImageIcon(scaleBackground);
        Main_Menu.setContentPane(new JLabel(imageIcon));

它使用“缩放平滑”,将图像设置为屏幕宽度和高度,但我不知道如何将其应用到当前代码中。两者之间的区别在于,Board类扩展了JPanel,而MainMenu2只是一个普通类,其中创建了JFrame等等。请帮助!谢谢。

在最基本的层面上,它可能看起来像这样

ImageIcon i = ImageIO.read(new File("C:/test.jpg"));
Image scaleBackground = backgroundImage.getScaledInstance(widthScreen, heightScreen, Image.SCALE_SMOOTH);            
img = scaleBackground.getImage();
现在,问题来了——组件的大小不太可能与屏幕的大小相匹配

作为一种偏好,我可能会尝试做类似的事情


您还应该阅读

您可以使用。它将根据可用空间动态调整大小。在我的代码中,我不使用scaleBackground,为什么要应用它?scaleBackground用于另一个不适用于我当前的代码示例,当类扩展JPanel时,我如何将iage设置为全屏?@Dennis首先-我将两个示例合并-因此,如果您尝试,您可以直接将其应用于您的
JPanel
示例。第二,你也可以看看我的答案中的链接。在某个时候,您将使用这些示例并将其应用到您自己的工作流中