请教:BorderLayout的NORTH、CENTER、SOUTH三部分的宽度可不可以自己设定或者给其中一部分指定一个最大宽度?
nt941 2003-08-25 11:46:54 最好使按比例设定,如果不行的话能设定其中一部分占固定的象素数也行。
我想实现的效果使在BorderLayout.NORTH处放一个Table,并让这个Table的高度(或显示的行数)一定,可是现在的问题当Table中数据越来越多的时候,Table就把BorderLayout.NORTH部分撑的很宽(纵向),而我意图是给此Table一个最大的高度,当Table的行数增加以致Table要超过这个高度的时候,就出现ScrollPanel的滚动条。
再一个问题是当初始Table中没有数据或者只有一两条数据的时候,整个BorderLayout.NORTH还是被撑的很宽,这是怎么回事啊?
我现在的做法是这样(请参看下面代码),把Table放进一ScrollPanel中,再把此ScrollPanel放进一JPanel中,再把此JPanel放到JFrame的BorderLayout.NORTH处,有上面问题,我不知道应该限制谁的高度、如何去限制。请高手赐教!谢谢!(另外,不用中间的JPanel而直接把包含表格的ScrollPanel放进BorderLayout.NORTH也可吧?)
JTable table = new JTable(tableModel);
JPanel paneTop = new JPanel();
paneTop.setLayout(new BorderLayout());
paneTop.add(new JScrollPane(table));
this.getContentPane.setLayout(new BorderLayout());
this.getContentPane.add(paneTop,BorderLayout.NORTH);
this.getContentPane.add(new Label("center"),BorderLayout.CENTER);
this.getContentPane.add(new Label("south"),BorderLayout.SOUTH);