Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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中的组件不是';t显示_Java_Swing_Jpanel - Fatal编程技术网

Java JFrame中的组件不是';t显示

Java JFrame中的组件不是';t显示,java,swing,jpanel,Java,Swing,Jpanel,我想为“4连胜”游戏编写GUI。。。 所以我用一个JPanel编写了一个JFrame,它有一个GridLayout。 然后我添加了一些jbutton和jlabel,但当我运行该程序时,只有一个空帧…:( 这是我的密码: import java.awt.*; import javax.swing.*; public class GUI{ /** * Constructor of the GUI */ public GUI(){ JFrame jf = new JFrame("4

我想为“4连胜”游戏编写GUI。。。 所以我用一个JPanel编写了一个JFrame,它有一个GridLayout。 然后我添加了一些jbutton和jlabel,但当我运行该程序时,只有一个空帧…:( 这是我的密码:

import java.awt.*;
import javax.swing.*;

public class GUI{

/**
 * Constructor of the GUI
 */
 public GUI(){
    JFrame jf = new JFrame("4 Gewinnt");
    jf.setVisible(true);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.setSize(700, 800);
    JPanel jp = new JPanel();
    jp.setLayout(new GridLayout(8,7,0,0));
    jp.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
    jp.setVisible(true);

    //Row Buttons
    JButton button0 = new JButton("Spalte 0");
    JButton button1 = new JButton("Spalte 1");
    JButton button2 = new JButton("Spalte 2");
    JButton button3 = new JButton("Spalte 3");
    JButton button4 = new JButton("Spalte 4");
    JButton button5 = new JButton("Spalte 5");
    JButton button6 = new JButton("Spalte 6");
    jp.add(button0);
    jp.add(button1);
    jp.add(button2);
    jp.add(button3);
    jp.add(button4);
    jp.add(button5);
    jp.add(button6);




    //Row 0Labels
    JLabel label00 =new JLabel("Label 00");
    JLabel label10 =new JLabel("Label 10");
    JLabel label20 =new JLabel("Label 20");
    JLabel label30 =new JLabel("Label 30");
    JLabel label40 =new JLabel("Label 40");
    JLabel label50 =new JLabel("Label 50");
    JLabel label60 =new JLabel("Label 60");
    jp.add(label00);
    jp.add(label10);
    jp.add(label20);
    jp.add(label30);
    jp.add(label40);
    jp.add(label50);
    jp.add(label60);

    //Row 1Labels
    JLabel label01 =new JLabel("Label 00");
    JLabel label11 =new JLabel("Label 10");
    JLabel label21 =new JLabel("Label 20");
    JLabel label31 =new JLabel("Label 30");
    JLabel label41 =new JLabel("Label 40");
    JLabel label51 =new JLabel("Label 50");
    JLabel label61 =new JLabel("Label 60");
    jp.add(label01);
    jp.add(label11);
    jp.add(label21);
    jp.add(label31);
    jp.add(label41);
    jp.add(label51);
    jp.add(label61);

    //Row 2Labels
    JLabel label02 =new JLabel("Label 00");
    JLabel label12 =new JLabel("Label 10");
    JLabel label22 =new JLabel("Label 20");
    JLabel label32 =new JLabel("Label 30");
    JLabel label42 =new JLabel("Label 40");
    JLabel label52 =new JLabel("Label 50");
    JLabel label62 =new JLabel("Label 60");
    jp.add(label02);
    jp.add(label12);
    jp.add(label22);
    jp.add(label32);
    jp.add(label42);
    jp.add(label52);
    jp.add(label62);

    //Row 3Labels
    JLabel label03 =new JLabel("Label 00");
    JLabel label13 =new JLabel("Label 10");
    JLabel label23 =new JLabel("Label 20");
    JLabel label33 =new JLabel("Label 30");
    JLabel label43 =new JLabel("Label 40");
    JLabel label53 =new JLabel("Label 50");
    JLabel label63 =new JLabel("Label 60");
    jp.add(label03);
    jp.add(label13);
    jp.add(label23);
    jp.add(label33);
    jp.add(label43);
    jp.add(label53);
    jp.add(label63);

    //Row 4Labels
    JLabel label04 =new JLabel("Label 00");
    JLabel label14 =new JLabel("Label 10");
    JLabel label24 =new JLabel("Label 20");
    JLabel label34 =new JLabel("Label 30");
    JLabel label44 =new JLabel("Label 40");
    JLabel label54 =new JLabel("Label 50");
    JLabel label64 =new JLabel("Label 60");
    jp.add(label04);
    jp.add(label14);
    jp.add(label24);
    jp.add(label34);
    jp.add(label44);
    jp.add(label54);
    jp.add(label64);

    //Row 5Labels
    JLabel label05 =new JLabel("Label 00");
    JLabel label15 =new JLabel("Label 10");
    JLabel label25 =new JLabel("Label 20");
    JLabel label35 =new JLabel("Label 30");
    JLabel label45 =new JLabel("Label 40");
    JLabel label55 =new JLabel("Label 50");
    JLabel label65 =new JLabel("Label 60");
    jp.add(label05);
    jp.add(label15);
    jp.add(label25);
    jp.add(label35);
    jp.add(label45);
    jp.add(label55);
    jp.add(label65);

    //Row 6Labels
    JLabel label06 =new JLabel("Label 00");
    JLabel label16 =new JLabel("Label 10");
    JLabel label26 =new JLabel("Label 20");
    JLabel label36 =new JLabel("Label 30");
    JLabel label46 =new JLabel("Label 40");
    JLabel label56 =new JLabel("Label 50");
    JLabel label66 =new JLabel("Label 60");
    jp.add(label06);
    jp.add(label16);
    jp.add(label26);
    jp.add(label36);
    jp.add(label46);
    jp.add(label56);
    jp.add(label66);



    jf.add(jp);
}



/**
 * Main method of GUI
 */
public static void main(String[] args)
{
    GUI gui = new GUI();
}
}

正如LuxxMiner所建议的,将
jf.setVisible(true);
移动到
public GUI()
构造函数的末尾。这为我解决了问题。

Put
jf.setVisible(true);
在添加所有组件后,这将解决问题。您也可以添加jf.revalidate()和jf.repaint()然而,在这种特定情况下,调用setVisible(true)a结束可能是最好的选择。