Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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 程序终止,JFrame不';不出现_Java - Fatal编程技术网

Java 程序终止,JFrame不';不出现

Java 程序终止,JFrame不';不出现,java,Java,嘿,伙计们,我正在写一个java程序来练习。它包括JFrame、JButton和动作侦听器。当我尝试(通过eclipse)运行程序时,控制台会显示“窗口(5)[Java应用程序]”[…] 有人知道怎么解决吗?这是我的密码: Window.java package com.github.dtroll.Carzett.main; import java.awt.Color; import javax.swing.JFrame; public class Window { public stat

嘿,伙计们,我正在写一个java程序来练习。它包括JFrame、JButton和动作侦听器。当我尝试(通过eclipse)运行程序时,控制台会显示“窗口(5)[Java应用程序]”[…]

有人知道怎么解决吗?这是我的密码:

Window.java

package com.github.dtroll.Carzett.main;

import java.awt.Color;

import javax.swing.JFrame;

public class Window {
public static void startGame() {
    JFrame f = new JFrame("Journey To Carzett");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setResizable(true);
    f.setBackground(Color.GRAY);
    f.setVisible(true);
    f.setSize(750, 500);
    //JPanel p = new JPanel(new BorderLayout());
}
public static void main(String args[]) {

    new Window();
           new StartPanel();
}


}
StartPanel.java (这用于在按下按钮时向程序中添加面板。)


在这里调用
startgame()
。如果您不调用它,则框架将不会出现。要查看框架,只需在main中添加以下内容:

startGame()

看起来您并没有真正连接JPanel和JFrame。基本上,您需要将JPanel添加到JFrame,然后“打包”JFrame并将其设置为可见。试试这个:

public static void main(String args[]) {

    Window frame = new Window();
    frame.startGame(new StartPanel());

}
您的窗口代码应该如下所示:

public static void startGame(JPanel panel) {
    JFrame f = new JFrame("Journey To Carzett");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setResizable(true);
    f.setBackground(Color.GRAY);
    f.setVisible(true);
    f.setSize(750, 500);
    f.getContentPane(panel);
    f.pack();
    f.setVisible(true);
}

错误消息是什么?旁注
if(e.getSource()==start){
应该是
if(e.getSource().equals(start)){
@DtrollMC这只是旁注。这不起作用,因为你还没有实现任何东西。你能给我们看看你的完整堆栈跟踪吗?好的,窗口出现了,但我看不到按钮。有什么想法吗?@DtrollMC看起来你没有将你的jpanel添加到jframe。问题是你的面板和框架不同。你在jpanal b中添加了东西但不要在jframe中添加它。是的,我忘了将StartGame设置为JPanel。我现在这样做了。但是按钮仍然没有显示。如果我很愚蠢,很抱歉。哈哈。现在当我启动窗口时,上角会出现一个灰色框,但我无法判断它是否是按钮。现在接受任何ans。然后关闭它。它现在不需要任何东西。好的,明白了。一个上午e thing.Im收到一个错误和崩溃:线程“main”java.lang中出现异常。错误:未解决的编译问题:类型窗口中的方法startName()不适用于com.github.dtroll.Carzett.main.Window.main(Window.java:21)的参数(StartPanel)。嘿,MC,您应该添加“JPanel面板”作为startGame方法的参数,这应该可以解决问题。
public static void startGame(JPanel panel) {
    JFrame f = new JFrame("Journey To Carzett");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setResizable(true);
    f.setBackground(Color.GRAY);
    f.setVisible(true);
    f.setSize(750, 500);
    f.getContentPane(panel);
    f.pack();
    f.setVisible(true);
}