【发布时间】:2011-09-28 17:14:31
【问题描述】:
我尝试将标题行添加到我的JTable,然后将表格放在面板上。
这是我的示例代码:
Map <String, Float> tmpCart = new HashMap<String , Float>();
MainPanel.removeAll();
MainPanel.repaint();
tmpCart = cart.GetMap();
DefaultTableModel tab = new DefaultTableModel();
tab.setColumnIdentifiers(new String[] {"Name", "Price"});
for (String key : tmpCart.keySet())
tab.addRow(new Object[] {key, tmpCart.get(key)});
JTable jTab = new JTable(tab);
jTab.setBounds(10, 10, 200, 200);
jTab.setBackground(Color.orange);
jTab.setRowHeight(25);
JScrollPane pan =new JScrollPane(jTab);
MainPanel.add(pan);
// MainPanel.add(jTab);
// pan.repaint();
如何正确书写?
//回答
我尝试动态创建JTable,按下按钮后,我想从Hashtable获取数据,创建表并将此表放在面板上。
第一步是从面板中删除所有组件,然后使用来自 Hashmap 的数据创建JTable`
功能齐全:
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
Map <String, Float> tmpCart = new HashMap<String , Float>();
MainPanel.removeAll();
MainPanel.repaint();
tmpCart = cart.GetMap();
DefaultTableModel tab = new DefaultTableModel();
tab.setColumnIdentifiers(new String[] {"Name", "Price"});
for (String key : tmpCart.keySet())
tab.addRow(new Object[] {key, tmpCart.get(key)});
JTable jTab = new JTable(tab);
jTab.setBounds(10, 10, 200, 200);
jTab.setBackground(Color.orange);
jTab.setRowHeight(25);
// MainPanel.add(pan);
MainPanel.add(jTab);
}
此代码有效,创建表格并将其放在面板上,但没有设置第一行的列名(文本:“名称”和“价格”)。
【问题讨论】:
-
请将您的
JTree doesn't add header行更改为JTable doesn't add header row或JTreeTable doesn't add header row -
你还没有发布SSCCE!
-
请学习java命名约定并遵守它们
-
永远不要在应用程序代码中调用 setBounds - 而是使用 layoutManager
标签: java swing jtree header-row