我使用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);
好的,但我看不到列的名称。为什么呢?
答案 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));
在替代方案中,请考虑以下因素:
PAGE_START
。CardLayout
在视图之间切换,而不是删除和恢复。