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 如何更改JTable或JScrollpane大小以适应JPanel_Java_Swing_Jtable_Jscrollpane_Layout Manager - Fatal编程技术网

Java 如何更改JTable或JScrollpane大小以适应JPanel

Java 如何更改JTable或JScrollpane大小以适应JPanel,java,swing,jtable,jscrollpane,layout-manager,Java,Swing,Jtable,Jscrollpane,Layout Manager,首先,很抱歉部件的荷兰名称。现在我想要一个带有jtable和按钮的表单。我有一些填充tableModel的方法-我没有在这里发布。问题是我的JTable在一个JPanel中,这个JPanel在一个带有Gridlayout的JPanel中,但它不会改变大小。 目前,我的表(或者?)我的jscrollpane不适合页面,所以它总是太大——我不确定哪一个是坏家伙组件 public class OpleidingenView extends JFrame implements iView{ privat

首先,很抱歉部件的荷兰名称。现在我想要一个带有jtable和按钮的表单。我有一些填充tableModel的方法-我没有在这里发布。问题是我的JTable在一个JPanel中,这个JPanel在一个带有Gridlayout的JPanel中,但它不会改变大小。 目前,我的表(或者?)我的jscrollpane不适合页面,所以它总是太大——我不确定哪一个是坏家伙组件

public class OpleidingenView extends JFrame implements iView{
private OpleidingenController controller;
private JTable tblOpleidingen;
private DefaultTableModel tableModel;
private JButton btnGoBack;
private JPanel pnlFirstrow, pnlSecondrow,pnlAll,pnlPaneel;
private JScrollPane scroller;
public OpleidingenView(){
    tableModel = new DefaultTableModel();
    tblOpleidingen = new JTable(tableModel);
    tblOpleidingen.setEnabled(false);

    scroller = new JScrollPane();
    scroller.setViewportView(tblOpleidingen);

    btnGoBack = new JButton("Vorige");
    pnlFirstrow = new JPanel();
    pnlSecondrow = new JPanel();
    pnlPaneel = new JPanel();
    pnlAll = new JPanel(new GridLayout(2,1));

    pnlFirstrow.add(scroller);
    pnlSecondrow.add(btnGoBack);

    pnlAll.add(scroller);
    pnlAll.add(pnlSecondrow);

    pnlPaneel.add(pnlAll);
    add(pnlPaneel);
}

我所知道的利用窗口/JFrame大小拉伸面板的最简单方法是将其置于边框布局的中心。

若要更快获得更好的帮助,请发布一篇文章。您必须了解布局管理器是如何工作的,没有办法:-)嵌套-正如您所做的-有其优点(很多)和优点(很少)。在这里,它掩盖了原因(这是表的滚动窗格添加到的面板的默认FlowLayout)OP:是的,但我有点将我的整个应用程序设置在gridlayout中:/每个其他组件都会根据面板的大小进行调整..然后你给我们一个小拼图,并要求我们解决整个问题。我认为,这就是为什么这里的许多人不尝试回答部分问题的原因——这不是因为我们不知道什么是错的,而是我们讨厌猜测,然后被告知我们错了,而我们所做的只是帮助。我们无法解决一小块框架的UI布局问题,尤其是涉及GridBag的情况下。祝你好运“祝你好运”+1,以及回答部分问题的尝试。我通常会添加一条“发布SSCCE”评论,然后将其留给OP。“发布SSCCE,或者不需要我的帮助。”我怀疑还有很多人持有基本相同的观点。