Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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 Swing应用程序屏幕上未显示任何内容_Java_Swing_User Interface - Fatal编程技术网

Java Swing应用程序屏幕上未显示任何内容

Java Swing应用程序屏幕上未显示任何内容,java,swing,user-interface,Java,Swing,User Interface,好的,如果可能的话,我将使用纯swing开始一个新的应用程序开发,所以我设置了我的对象和东西,当我尝试运行应用程序以查看它是否良好时,除了一个空容器外,什么都没有显示。在构造函数的末尾添加这两行 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SimultaneousSolver extends JFrame implements ActionListener { JTex

好的,如果可能的话,我将使用纯swing开始一个新的应用程序开发,所以我设置了我的对象和东西,当我尝试运行应用程序以查看它是否良好时,除了一个空容器外,什么都没有显示。

在构造函数的末尾添加这两行

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class SimultaneousSolver extends JFrame implements ActionListener
{

    JTextField  tfEQ1X  = new JTextField (20);
    JTextField  tfEQ1Y  = new JTextField (20);
    JTextField  tfEQ1Num    = new JTextField (20);

    JTextField  tfEQ2X  = new JTextField (20);
    JTextField  tfEQ2Y  = new JTextField (20);
    JTextField  tfEQ2Num    = new JTextField (20);

    JLabel lblX1 = new JLabel ("X₁");
    JLabel lblY1 = new JLabel ("Y₁");
    JLabel lblNum1  = new JLabel ("Number₁");
    JLabel lblEqual1 = new JLabel ("=");

    JLabel lblX2 = new JLabel ("X₂");
    JLabel lblY2 = new JLabel ("Y₂");
    JLabel lblNum2  = new JLabel ("Number₂");
    JLabel lblEqual2 = new JLabel ("=");

    JTextArea Empty = new JTextArea ("",1,20);

    double X1, X2, Y1, Y2, Num1, Num2;
    double SolX, SolY;

    Font font = new Font("Comic Sans MS", Font.BOLD, 14);

    SimultaneousSolver()
    {
        super ("Simultaneous Equation Solver");
        setDesign();
        setSize(700,400);
        setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        JPanel panelEquation1 = new JPanel(new GridLayout(1,7));
        {
            panelEquation1.add(lblX1);
            panelEquation1.add(tfEQ1X);
            panelEquation1.add(lblY1);
            panelEquation1.add(tfEQ1Y);
            panelEquation1.add(lblEqual1);
            panelEquation1.add(lblNum1);
            panelEquation1.add(tfEQ1Num);
        }

        JPanel panelEquation2 = new JPanel(new GridLayout(1,7));
        {
            panelEquation2.add(lblX2);
            panelEquation2.add(tfEQ2X);
            panelEquation2.add(lblY2);
            panelEquation2.add(tfEQ2Y);
            panelEquation2.add(lblEqual2);
            panelEquation2.add(lblNum2);
            panelEquation2.add(tfEQ2Num);
        }

        setVisible(true);
    }


    public final void setDesign() 
    {
        try 
        {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        }   
        catch(Exception e) 
        {   
        }
    }

    public static void main(String[] args)
    {
        new SimultaneousSolver();
    }

}

您在哪里将这些新的jpanel实例添加到主窗口框架中?您需要将面板添加到框架中…所以我需要像初始化JTextField之类的东西一样初始化jpanel?它不像AWT那样工作?你能猜出为什么它不工作吗?i、 e仅显示第二个面板-为主框架指定并设置布局。现在,一个面板隐藏了另一个面板。您也不应该知道JFrame的默认布局是BorderLayout。也就是说,当您添加组件而不指定BorderLayout.[POSITION]时,该组件将自动添加到BorderLayout.CENTER,最后一个人获胜。这就是为什么在预编辑的答案中,只有第二个面板会显示出来——第二个面板踢出了第一个面板。我会记得那个皮斯基勒。谢谢你帮了一个JAVA Noob
setLayout(new GridLayout());  // sets layout for frame - you can choose any one suitable layout
add(panelEquation1);  // adds 1st panel
add(panelEquation2); // adds 2nd panel