网格包布局不显示任何内容!!JAVA

网格包布局不显示任何内容!!JAVA,java,swing,gridbaglayout,Java,Swing,Gridbaglayout,首先,我环顾了一下stackoverflow,没有发现任何与我的问题相关的东西 我试着使用GridBagLayout,第一次尝试时,它运行正常,但我不知道我做了什么,现在它什么都不显示,你知道mas发生了什么吗 以下是所有代码: package Instrucciones; import java.awt.*; import javax.swing.*; /** * * @author Antonio */ public class JDialog1TxArea extends JDialo

首先,我环顾了一下stackoverflow,没有发现任何与我的问题相关的东西

我试着使用GridBagLayout,第一次尝试时,它运行正常,但我不知道我做了什么,现在它什么都不显示,你知道mas发生了什么吗

以下是所有代码:

package Instrucciones;

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

/**
*
* @author Antonio
*/
public class JDialog1TxArea extends JDialog {

    JPanel panel = new JPanel(); //Contains all objects
    JTextArea instruc;
    JButton ok;

    public JDialog1TxArea(String instrucciones){  
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setTitle("Instrucciones");
        pack();
        setSize(450,300);
        setLocationRelativeTo(null);
        setVisible(true);

        JPanel mainpanel = new JPanel();
        getContentPane().add(mainpanel);

        panel = new JPanel();
        panel.setLayout(new GridBagLayout());
        mainpanel.add(panel);

        GridBagConstraints c = new GridBagConstraints();

        c.gridx = 0;
        c.gridy = 0;
        c.anchor = GridBagConstraints.CENTER;

        instruc = new JTextArea(instrucciones);
        ok = new JButton("Aceptar");

        panel.add(instruc, c);
        c.gridy++;
        panel.add(ok, c);
        c.gridy++;   
    }  

    public static void main (String args[]){  
        JDialog1TxArea v = new JDialog1TxArea("Conalep");      
    }  
}

控制台没有任何异常。

setVisible
移动到构造函数中的最后一行

public JDialog1TxArea(String instrucciones) {

    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    setTitle("Instrucciones");
    // From here
    //pack();
    //setSize(450, 300);
    //setLocationRelativeTo(null);
    //setVisible(true);

    JPanel mainpanel = new JPanel();
    getContentPane().add(mainpanel);

    panel = new JPanel();
    panel.setLayout(new GridBagLayout());
    mainpanel.add(panel);

    GridBagConstraints c = new GridBagConstraints();

    c.gridx = 0;
    c.gridy = 0;
    c.anchor = GridBagConstraints.CENTER;

    instruc = new JTextArea(instrucciones);
    ok = new JButton("Aceptar");

    panel.add(instruc, c);
    c.gridy++;
    panel.add(ok, c);
    c.gridy++;

    // To here
    pack();
    setLocationRelativeTo(null);
    setVisible(true);

}
我不鼓励您从像
JDialog
这样的顶级容器进行扩展,而是使用
JPanel
作为基本容器来设计UI。然后,您可以使用类似于
JOptionPane
的方法将这些内容添加到所需的顶级容器中。有关更多详细信息,请参阅


您可能还想看看,因为您的
JTextArea
将从中受益

setVisible
移动到构造函数中的最后一行

public JDialog1TxArea(String instrucciones) {

    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    setTitle("Instrucciones");
    // From here
    //pack();
    //setSize(450, 300);
    //setLocationRelativeTo(null);
    //setVisible(true);

    JPanel mainpanel = new JPanel();
    getContentPane().add(mainpanel);

    panel = new JPanel();
    panel.setLayout(new GridBagLayout());
    mainpanel.add(panel);

    GridBagConstraints c = new GridBagConstraints();

    c.gridx = 0;
    c.gridy = 0;
    c.anchor = GridBagConstraints.CENTER;

    instruc = new JTextArea(instrucciones);
    ok = new JButton("Aceptar");

    panel.add(instruc, c);
    c.gridy++;
    panel.add(ok, c);
    c.gridy++;

    // To here
    pack();
    setLocationRelativeTo(null);
    setVisible(true);

}
我不鼓励您从像
JDialog
这样的顶级容器进行扩展,而是使用
JPanel
作为基本容器来设计UI。然后,您可以使用类似于
JOptionPane
的方法将这些内容添加到所需的顶级容器中。有关更多详细信息,请参阅


您可能还想看看,因为您的
JTextArea
将从中受益

setVisible
移动到构造函数中的最后一行

public JDialog1TxArea(String instrucciones) {

    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    setTitle("Instrucciones");
    // From here
    //pack();
    //setSize(450, 300);
    //setLocationRelativeTo(null);
    //setVisible(true);

    JPanel mainpanel = new JPanel();
    getContentPane().add(mainpanel);

    panel = new JPanel();
    panel.setLayout(new GridBagLayout());
    mainpanel.add(panel);

    GridBagConstraints c = new GridBagConstraints();

    c.gridx = 0;
    c.gridy = 0;
    c.anchor = GridBagConstraints.CENTER;

    instruc = new JTextArea(instrucciones);
    ok = new JButton("Aceptar");

    panel.add(instruc, c);
    c.gridy++;
    panel.add(ok, c);
    c.gridy++;

    // To here
    pack();
    setLocationRelativeTo(null);
    setVisible(true);

}
我不鼓励您从像
JDialog
这样的顶级容器进行扩展,而是使用
JPanel
作为基本容器来设计UI。然后,您可以使用类似于
JOptionPane
的方法将这些内容添加到所需的顶级容器中。有关更多详细信息,请参阅


您可能还想看看,因为您的
JTextArea
将从中受益

setVisible
移动到构造函数中的最后一行

public JDialog1TxArea(String instrucciones) {

    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    setTitle("Instrucciones");
    // From here
    //pack();
    //setSize(450, 300);
    //setLocationRelativeTo(null);
    //setVisible(true);

    JPanel mainpanel = new JPanel();
    getContentPane().add(mainpanel);

    panel = new JPanel();
    panel.setLayout(new GridBagLayout());
    mainpanel.add(panel);

    GridBagConstraints c = new GridBagConstraints();

    c.gridx = 0;
    c.gridy = 0;
    c.anchor = GridBagConstraints.CENTER;

    instruc = new JTextArea(instrucciones);
    ok = new JButton("Aceptar");

    panel.add(instruc, c);
    c.gridy++;
    panel.add(ok, c);
    c.gridy++;

    // To here
    pack();
    setLocationRelativeTo(null);
    setVisible(true);

}
我不鼓励您从像
JDialog
这样的顶级容器进行扩展,而是使用
JPanel
作为基本容器来设计UI。然后,您可以使用类似于
JOptionPane
的方法将这些内容添加到所需的顶级容器中。有关更多详细信息,请参阅


您可能还想看一看,因为您的
JTextArea
将从中受益

为什么要调用pack(),如果还没有要打包的东西?为什么要调用pack(),如果还没有要打包的东西?为什么要调用pack(),如果还没有要打包的东西?为什么要调用pack(),如果还没有要打包的东西呢?老兄,谢谢你的回答,这是我收到的最好的答案之一,也谢谢你提供我认为会收到的额外信息need@MadProgrammer(:我知道你回答了这里的大部分答案,大概两周的假期可以帮你,而且大部分答案现在/将来都没有答案:-)对于pack(),它们是位置的最佳位置,最后一个应该是可见的,请回答,这是我收到过的最好的答案之一,也感谢我确实认为会收到的额外信息need@MadProgrammer (:我知道你回答了这里的大部分答案,大概两周的休息时间可以帮你,而且大部分答案都没有答案:-)和pack(),这是最好的位置,最后一个应该是可见的,请回答,这是我收到过的最好的答案之一,也谢谢你提供的额外信息,我真的认为会need@MadProgrammer (:我知道你回答了这里的大部分答案,大概两周的休息时间可以帮你,而且大部分答案都没有答案:-)和pack(),这是最好的位置,最后一个应该是可见的,请回答,这是我收到过的最好的答案之一,也谢谢你提供的额外信息,我真的认为会need@MadProgrammer (:我知道你回答了这里的大部分答案,大概两周的假期可以帮你,而且大多数答案都是/然后将是没有答案的:-)和pack(),它们是位置的最佳位置,最后一个应该是可见的,请