JFrame(Java)中的图形元素不会出现

Avi*_*ivC 0 java user-interface swing jframe

我正在制作一个节目.我创建了一个JFrame,里面有一堆面板,按钮,标签和文本字段.出于某种原因,JFrame会出现,但内部没有任何内容.这是代码:

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

public class GUI extends JFrame {

    JButton rect,oval,tri,free,addPoint;
    JLabel xLabel,yLabel;
    JTextField xTextField,yTextField;
    JPanel leftPanel,rightPanel,optionsPanel,pointsPanel;

    public GUI(){
        initUI();
    }

    private void initUI(){

        setLayout(new GridLayout(1,2,5,5));
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setTitle("Graphics Generator");
        setSize(500,500);
        setVisible(true);

        add(leftPanel);
        add(rightPanel);

        leftPanel.setLayout(new GridLayout(2,1,5,5));
        leftPanel.add(optionsPanel);

        optionsPanel.setLayout(new GridLayout(1,4,2,2));

        rect = new JButton("Rectangle");
        oval = new JButton("Oval");
        tri = new JButton("Triangle");
        free = new JButton("Free Shape");

        optionsPanel.add(rect);
        optionsPanel.add(oval);
        optionsPanel.add(tri);
        optionsPanel.add(free);

        leftPanel.add(pointsPanel);

        pointsPanel.setLayout(new GridLayout(1,5,2,2));

        pointsPanel.add(xLabel);
        pointsPanel.add(xTextField);
        pointsPanel.add(yLabel);
        pointsPanel.add(yTextField);
        pointsPanel.add(addPoint);

    }

    public static void main(String[] args) {

        GUI gui = new GUI();

    }

}
Run Code Online (Sandbox Code Playgroud)

mKo*_*bel 5

  • JComponents没有初始化,

  • 你添加JComponents到已经可见JFrame,

  • 你必须将代码行移动 setVisible(true);到构造函数的末尾,

  • 应该在初始线程上创建Swing GUI