Для иллюстрации ниже приведены примеры использования DefaultTableModel
для отображения ваших данных из HashMap
s и Vector
s.
Ниже приведен пример сброса данных из HashMap
на DefaultTableModel
, который используется как TableModel
для JTable
.
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class JTableExample extends JFrame
{
private void makeGUI()
{
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// HashMap with some data.
HashMap<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
map.put("key2", "value2");
// Create a DefaultTableModel, which will be used as the
// model for the JTable.
DefaultTableModel model = new DefaultTableModel();
// Populate the model with data from HashMap.
model.setColumnIdentifiers(new String[] {"key", "value"});
for (String key : map.keySet())
model.addRow(new Object[] {key, map.get(key)});
// Make a JTable, using the DefaultTableModel we just made
// as its model.
JTable table = new JTable(model);
this.getContentPane().add(table);
this.setSize(200,200);
this.setLocation(200,200);
this.validate();
this.setVisible(true);
}
public static void main(String[] args)
{
new JTableExample().makeGUI();
}
}
Для использования Vector
для включения столбца данных в JTable
:
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class JTableExample extends JFrame
{
private void makeGUI()
{
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Vector with data.
Vector<String> v = new Vector<String>();
v.add("first");
v.add("second");
// Create a DefaultTableModel, which will be used as the
// model for the JTable.
DefaultTableModel model = new DefaultTableModel();
// Add a column of data from Vector into the model.
model.addColumn("data", v);
// Make a JTable, using the DefaultTableModel we just made
// as its model.
JTable table = new JTable(model);
this.getContentPane().add(table);
this.setSize(200,200);
this.setLocation(200,200);
this.validate();
this.setVisible(true);
}
public static void main(String[] args)
{
new JTableExample().makeGUI();
}
}
Я должен признать, что имена столбцов не появляются при использовании приведенных выше примеров (я обычно использую метод DefaultTableModel
setDataVector
), поэтому, если у кого-то есть какие-либо предложения о том, как заставить имена столбцов появляться Пожалуйста, сделайте:)