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();
}
});
}
}