Java 我的JTable无法扩展到其所在面板的全宽
如何使我的JTable充分利用父面板的可用性?我曾尝试使用setSize或setPreferredSize,但没有成功。后者实际上制作了一个非常小的表格Java 我的JTable无法扩展到其所在面板的全宽,java,swing,jtable,size,Java,Swing,Jtable,Size,如何使我的JTable充分利用父面板的可用性?我曾尝试使用setSize或setPreferredSize,但没有成功。后者实际上制作了一个非常小的表格 JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints constraints = new GridBagConstraints(); constraints.gridx = 0; constraints.gridy = 0; cons
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();
constraints.gridx = 0;
constraints.gridy = 0;
constraints.insets = new Insets(0, 0, 25, 15);
String[] columnNames = {"A", "B", "C", "D", "E"};
Object[][] data = new Object[20][columnNames.length];
for( int i = 0; i < 20; i++ ){
data[i] = new Object[]{"Some other stuff that is long", "K", "1234567891011121314", "R", "T"};
}
JTable skillTable = new JTable(data, columnNames);
skillTable.setFillsViewportHeight(true );
JScrollPane scrollTable = new JScrollPane(skillTable);
constraints.fill = constraints.HORIZONTAL;
panel.add(scrollTable, constraints);
JPanel panel=newjpanel(newgridbagloayout());
GridBagConstraints=新的GridBagConstraints();
constraints.gridx=0;
constraints.gridy=0;
constraints.insets=新的insets(0,0,25,15);
String[]columnNames={“A”、“B”、“C”、“D”、“E”};
Object[][]数据=新对象[20][columnNames.length];
对于(int i=0;i<20;i++){
数据[i]=新对象[]{“其他一些长的东西”,“K”,“123456789101121314”,“R”,“T”};
}
JTable skillTable=新的JTable(数据、列名);
可熟练操作。设置填充视图八(真);
JScrollPane scrollTable=新的JScrollPane(skillTable);
constraints.fill=constraints.HORIZONTAL;
添加(滚动表、约束);
这就是它看起来的样子:使用整洁和简单
JPanel panel = new JPanel(new BorderLayout());
String[] columnNames = {"A", "B", "C", "D", "E"};
Object[][] data = new Object[20][columnNames.length];
for (int i = 0; i < 20; i++) {
data[i] = new Object[]{"Some other stuff that is long", "K", "1234567891011121314", "R", "T"};
}
JTable skillTable = new JTable(data, columnNames);
skillTable.setFillsViewportHeight(true);
JScrollPane scrollTable = new JScrollPane(skillTable);
panel.add(scrollTable, BorderLayout.CENTER);
//as you said you want to add a button as well
JPanel buttonpanel=new JPanel();
buttonpanel.add(new JButton("Test"));
panel.add(buttonpanel,BorderLayout.SOUTH);
JPanel panel=newjpanel(newborderlayout());
String[]columnNames={“A”、“B”、“C”、“D”、“E”};
Object[][]数据=新对象[20][columnNames.length];
对于(int i=0;i<20;i++){
数据[i]=新对象[]{“其他一些长的东西”,“K”,“123456789101121314”,“R”,“T”};
}
JTable skillTable=新的JTable(数据、列名);
可熟练操作。设置填充视图八(真);
JScrollPane scrollTable=新的JScrollPane(skillTable);
panel.add(滚动表、BorderLayout.CENTER);
//正如您所说,您还想添加一个按钮
JPanel buttonpanel=新的JPanel();
添加(新的JButton(“测试”));
面板。添加(按钮面板,边界布局。南);
是否需要使用
GridBagLayout
?为什么不直接使用网格布局
?执行new GridLayout()
将导致表格占据整个面板。正在向面板添加哪些其他组件?你能简单地使用一个边框布局并将滚动表放在中间吗?面板中只有另一个按钮。我想我将使用GridLayout为表添加一个额外的面板。感谢您的帮助。GridBagConstraints.fill=GridBagConstraints.HORIZONTAL;,但是为了使用JScrollPane和JPanelI的BorderLayout,也尝试了水平布局,但没有成功。非常好。非常感谢。