Java JPanel没有发生

Java JPanel没有发生,java,swing,jpanel,joptionpane,preferredsize,Java,Swing,Jpanel,Joptionpane,Preferredsize,有人能帮我解释一下为什么我的gui面板无法调整大小,当我加载表时,我希望它能自动扩展。下面是一个我认为您正在尝试的示例: 也请看看如何使用和如何使用 再一次,请在创建和发布一个小程序上投入一些精力,我们可以编译、运行、修改,并希望能帮助您更正。您真的需要JOptionPane吗,为什么不只是一个对话框?@user905374,为什么要使用JDialog?然后,您需要编写所有侦听器来处理“确定”、“关闭”按钮等。JOptionPane在一条语句中为您完成所有这些。@camickr Ok好的,我习惯

有人能帮我解释一下为什么我的gui面板无法调整大小,当我加载表时,我希望它能自动扩展。

下面是一个我认为您正在尝试的示例:

也请看看如何使用和如何使用


再一次,请在创建和发布一个小程序上投入一些精力,我们可以编译、运行、修改,并希望能帮助您更正。您真的需要JOptionPane吗,为什么不只是一个对话框?@user905374,为什么要使用JDialog?然后,您需要编写所有侦听器来处理“确定”、“关闭”按钮等。JOptionPane在一条语句中为您完成所有这些。@camickr Ok好的,我习惯于JDialogs,我只使用JOptionPane进行快速提示。我不知道它可以这样使用。您真的打算将
窗格
(JScrollPane)添加到
guiCenter
的BorderLayout.SOUTH位置吗?BorderLayout的边缘(相对于中心)中的组件不会水平和垂直拉伸。这很好,但我仍然看不到表上的滚动条。您的测试显示了滚动条,但我的滚动条上没有,可能是因为我在gui窗格中添加了表guicenter和guicenter?
final JPanel gui = new JPanel(new BorderLayout(2,3));
 JPanel guiCenter = new JPanel(new BorderLayout(2,3));

 JPanel buttonConstrsint = new JPanel(new FlowLayout(FlowLayout.CENTER));
             JButton getQuotesButton = new JButton("Get Quotes..");

              getQuotesButton.addActionListener(new ActionListener() {
                  public void actionPerformed(ActionEvent e) {

                    JTable table = new JTable(generateRandomTableModel());
                     JScrollPane pane = new JScrollPane(table);
                    guiCenter.add(pane, BorderLayout.SOUTH);
                    //guiCenter.setVisible(true);
                    gui.add(guiCenter,BorderLayout.CENTER);
                    gui.setPreferredSize(new Dimension(400,400));
                    gui.revalidate();
                    gui.repaint();
            }
        });

  buttonConstrsint.add(getQuotesButton);
  guiCenter.add(buttonConstrsint,BorderLayout.NORTH);

 // gui.add(labelFields,BorderLayout.NORTH);
  gui.add(guiCenter,BorderLayout.CENTER);

  JOptionPane.showMessageDialog(null, gui);
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class Test2 {

    public static void main(String[] args) {
        final JPanel gui = new JPanel(new BorderLayout(2, 3));

        JPanel buttonConstrsint = new JPanel(new FlowLayout(FlowLayout.CENTER));
        JButton getQuotesButton = new JButton("Get Quotes..");
        buttonConstrsint.add(getQuotesButton);
        gui.add(buttonConstrsint, BorderLayout.NORTH);


        getQuotesButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String[] columnNames = {"First Name",
                        "Last Name",
                        "Sport",
                        "# of Years",
                        "Vegetarian"};


                Object[][] data = {
                        {"Kathy", "Smith",
                         "Snowboarding", new Integer(5), new Boolean(false)},
                        {"John", "Doe",
                         "Rowing", new Integer(3), new Boolean(true)},
                        {"Sue", "Black",
                         "Knitting", new Integer(2), new Boolean(false)},
                        {"Jane", "White",
                         "Speed reading", new Integer(20), new Boolean(true)},
                        {"Joe", "Brown",
                         "Pool", new Integer(10), new Boolean(false)}
                    };




                JTable table = new JTable(data, columnNames);


                JScrollPane scrollPane = new JScrollPane(table);
                table.setFillsViewportHeight(true);



                gui.add(scrollPane, BorderLayout.CENTER);
                gui.revalidate();
                gui.repaint();
            }
        });

        JOptionPane jOptionPane = new JOptionPane(gui);

        JDialog dialog = jOptionPane.createDialog(new JFrame(), "title");
        dialog.setSize(200, 200);
        dialog.show();
    }
}