Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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 图形用户界面不';t显示我为其设置的背景(编译)_Java_Bluej - Fatal编程技术网

Java 图形用户界面不';t显示我为其设置的背景(编译)

Java 图形用户界面不';t显示我为其设置的背景(编译),java,bluej,Java,Bluej,我正在尝试为我正在尝试制作的游戏创建一个GUI,这个游戏是不相关的 根据我的说法,这应该做的是向我展示一个GUI,一个框架,一个图片,然而,仅仅是框架显示,图像就不存在了:( 谁能告诉我我做错了什么? 谢谢你抽出时间 import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.ImageIcon; import javax.swing.JLabel; impor

我正在尝试为我正在尝试制作的游戏创建一个GUI,这个游戏是不相关的

根据我的说法,这应该做的是向我展示一个GUI,一个框架,一个图片,然而,仅仅是框架显示,图像就不存在了:(

谁能告诉我我做错了什么? 谢谢你抽出时间

     import javax.swing.JFrame;
     import javax.swing.JPanel;
     import javax.swing.ImageIcon;
     import javax.swing.JLabel;
     import javax.swing.*;
     import java.awt.BorderLayout;
     import java.awt.*;

     public class Graph
     {
     int maxX,maxY;
     private JFrame frame;

     Graph()
     {
     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
     maxX = screenSize.width;
     maxY = screenSize.height;
     frame = new JFrame("My Application");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setSize(maxX, maxY);
     frame.setLocationRelativeTo(null);
     JLabel label = new JLabel(icon);
     JPanel panel = new JPanel(new BorderLayout());
     panel.add(label, BorderLayout.CENTER);
     frame.add(panel, BorderLayout.CENTER);
     frame.setVisible(true);




    }


    public String g()
    {

    return this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath().replaceAll("´        20", " ");
    }

    public static void main(String args[]) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            Graph g = new Graph();
        }
    });
    }
    }

此示例应向您显示执行所需操作的正确顺序方法是启动swing应用程序的方式。这使用了您可以阅读的EDT。另一个注意事项是,您设置了框架的大小,但当它显示时,它会小得多。这是因为您使用了
frame.pack()
,这将确保只使用您真正需要的空间

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Graph {
    JFrame frame;

    public Graph() {
        frame = new JFrame("My Application");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(1366,770);
        frame.setLocationRelativeTo(null);

        JLabel label = new JLabel("SomeLabel");
        JPanel panel = new JPanel(new BorderLayout());
        panel.add(label, BorderLayout.CENTER);

        frame.add(panel, BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String args[]) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                Graph g = new Graph();
            }
        });
    }
}

既然你只是在JFrame内部创建一个JFrame,为什么还要扩展它呢?另外,我认为问题在于你做事情的顺序,例如,你正在构建/显示框架,然后添加组件。我现在也意识到并删除了这一点,我会编辑,虽然结果是一样的,我会研究一下,尝试过,同样的结果,但也许我只是这么做了我不太明白你在说什么,你能举个例子吗?把你新编辑过的代码作为对你的问题的编辑发布。举个简单的例子,
frame.setVisible()
可能是您添加所有组件并打包框架后最后调用的内容。您可以反复编辑它。您说过您更改了添加组件与构建/显示框架的顺序。显示出来。谢谢!帮了我很多忙;)没问题。我只是试着先解决问题,而不是直接给出答案。我发现这有助于人们更好地理解/学习。argh仍然不起作用。。。但是我现在有正确的设置,我会编辑是的,请用你现在更新的代码编辑你的问题,这样我就可以查看了。我所发布的内容在我这里的两台不同的机器上运行良好。非常感谢您的时间,感谢您(男:),也感谢您询问其他用户!)