【问题标题】:JPanel Resize not happeningJPanel调整大小没有发生
【发布时间】:2013-10-20 13:56:26
【问题描述】:
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);

谁能帮助我为什么我的 gui 面板无法调整大小,当我加载表格时,我希望它会自动展开。

【问题讨论】:

  • 再次,请努力创建和发布sscce,这是一个我们可以编译、运行、修改并希望能帮助您纠正的小程序。
  • 这里真的需要一个 JOptionPane,为什么不只是一个对话框?
  • @user905374,为什么要使用 JDialog?然后您需要编写所有侦听器来处理“确定”、“关闭”按钮等。JOptionPane 在一个语句中为您完成所有这些。
  • @camickr 好的,我习惯了 JDialogs,我只使用 JOptionPane 进行快速提示。我不知道它可以这样使用。
  • 您真的打算将pane(JScrollPane)添加到guiCenter 的BorderLayout.SOUTH 位置吗? BorderLayout 边缘(而不是中心)中的组件不会水平和垂直拉伸。

标签: java swing jpanel joptionpane preferredsize


【解决方案1】:

这是我认为您正在尝试做的一个示例:

另外请看看JTable的使用方法和JOptionPane的使用方法

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();
    }
}

【讨论】:

  • 这很好,但我仍然没有在桌子上看到滚动条。你的测试显示滚动条,但我没有,可能是因为我将表 guicenter 和 guicenter 添加到 gui 窗格?
猜你喜欢
  • 1970-01-01
  • 2017-05-09
  • 1970-01-01
  • 2011-05-17
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
  • 2020-11-30
  • 2011-10-03
相关资源
最近更新 更多