public class Tabla extends JFrame {
private MiTabla miTabla;
private DefaultTableModel modelo;
public Tabla() {
miTabla = new MiTabla(new String[] {"ID", "Valor"});
modelo = (DefaultTableModel) miTabla.getModel();
JPanel panelTabla = new JPanel();
JScrollPane scroll = new JScrollPane(miTabla);
scroll.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
scroll.setPreferredSize(new Dimension(400, 300));
panelTabla.add(scroll);
JPanel panelBoton = new JPanel();
JButton btNuevo = new JButton("Nuevos Registros");
btNuevo.addActionListener(new AccionNuevo());
panelBoton.add(btNuevo);
setLayout(new BorderLayout());
add(panelTabla, BorderLayout.CENTER);
add(panelBoton, BorderLayout.SOUTH);
setTitle("Tabla");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
private class MiTabla extends JTable {
public MiTabla(String[] nombresColumna) {
super(new DefaultTableModel(nombresColumna, 0));
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(SwingConstants.CENTER);
setDefaultRenderer(Object.class, centerRenderer);
}
}
private class AccionNuevo implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
Random azar = new Random();
for (int i = 0; i < 10; i++)
modelo.addRow(new Object[]{"#"+modelo.getRowCount(), String.format("%05d", azar.nextInt(99999))});
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Tabla();
}
});
}
}