我的JTable列的名称未显示

时间:2017-03-12 22:33:56

标签: java swing jtable

我使用JFrame使用Java Swing创建了BorderLayout。东西布局都使用一些组件固定,而中心的BorderLayout可以根据用户的操作而改变。一开始有一张图片,

panelDinamycCenter = new JPanel ();   
JScrollPane = new JScrollPane (panelDinamycCenter);

panelDinamycCenter.add (new JLabel ( "", new Imagelcon ( "......."),  JLabel.CENTER));

jFrame.getContentPane (). add (JScrollPane, BorderLayout.CENTER);

然后是数据输入屏幕,我使用了GridBagLayout。为了删除图片并插入新屏幕我使用了这个:

panelDinamycCenter.removeAll (), 

然后我添加了各种组件。之后

setVisible (true);

我现在创建了一个JTable,要包含在panelDinamycCenter

panelDinamycCenter.removeAll ();

String [] [] matrixValori = new String  [arrayOggCreaJTableDeroghe.length] [arrayJTableNomeColumnDeroghe.length];

for (int i = 0; i <arrayOggCreaJTableDeroghe.length; i ++) {
    matrixValori [i] = arrayOggCreaJTableDeroghe [i] .creaArrayString ();
}

DefaultTableModel model = new DefaultTableModel (matrixValori,    arrayJTableNomeColumnDeroghe);
JTable JTable = new JTable (model);
jTable.setAutoResizeMode (JTable.AUTO_RESIZE_OFF);

panelDinamycCenter.add (JTable);

jFrame.setVisible (true);

好的,但我看不到列的名称。为什么呢?

1 个答案:

答案 0 :(得分:1)

How to Use Tables: Adding a Table to a Container所示,&#34;滚动窗格会自动将表格标题放在视口的顶部。&#34;至少,您需要替换JScrollPane删除的removeAll()

JTable jTable = new JTable(model);
panelDinamycCenter.add(new JScrollPane(jTable));

在替代方案中,请考虑以下因素:

  • 按照建议here将表格标题添加到PAGE_START
  • 使用CardLayout在视图之间切换,而不是删除和恢复。