Java JTable自动调整大小至JScrollPane高度和宽度
我一直在网上阅读,试图找到解决我问题的办法。 有人能帮我吗。当滚动条显示的行不足时,如何自动调整Jtable的高度以适应父容器。谢谢 更新:代码显示了我的问题,以及建议的解决方案如何没有帮助。谢谢Java JTable自动调整大小至JScrollPane高度和宽度,java,swing,jtable,jscrollpane,Java,Swing,Jtable,Jscrollpane,我一直在网上阅读,试图找到解决我问题的办法。 有人能帮我吗。当滚动条显示的行不足时,如何自动调整Jtable的高度以适应父容器。谢谢 更新:代码显示了我的问题,以及建议的解决方案如何没有帮助。谢谢 import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class t extends JFrame {
private JPanel contentPane;
private JTable table;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
t frame = new t();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public t() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));
JScrollPane scrollPane = new JScrollPane();
contentPane.add(scrollPane, BorderLayout.CENTER);
table = new JTable(10,10);
table. setFillsViewportHeight( true );
scrollPane.setViewportView(table);
}
}
当滚动条显示的行不足时,如何自动调整Jtable的高度以适应父容器
我认为您正在寻找:
table. setFillsViewportHeight( true );
编辑:
但似乎不起作用
将以下代码行添加到示例中:
contentPane.setBackground(Color.RED);
scrollPane.getViewport().setBackground(Color.BLUE);
你会看到一个红色的边框
然后删除:
table. setFillsViewportHeight( true );
您将看到红色和蓝色,表示桌子高度最初增加了
如果您希望看到空单元格被绘制,那么它将不起作用。表格只能绘制模型中的内容。如果希望绘制更多的数据行,则需要向模型中添加更多的数据行。如果高度降低,则需要从模型中删除数据
当然,现在您需要跟踪哪些是“有效”数据行,哪些是“填充”数据行。因此,您需要创建一个自定义的TableModel来管理它。然后将ComponentListener添加到表中,以处理表中的高度更改,然后对TableModel进行操作。发布帮助。“当滚动条显示的行数不足时,如何自动调整Jtable的高度以适应父容器。”这对(用户)来说没有意义因此是不可取的。@AndrewThompson不明白这是为什么。我的Jtable在JScrollPane/JPanel/BorderLayout.CENTER中。。。。当我将我的应用程序调整为全屏时,我的JTable下会有一个空白,这很难看(对用户来说)对不起,但似乎不起作用…将发布更新以显示它不起作用。谢谢