Vamos separar as coisas.
O Model contém os dados de sua tabela.
O TableColumnModel é um modelo que descreve as colunas para sua tabela.
O JTable possui as informações de desenho da sua tabela, e também captura a interação do usuário com a tabela.
Então, você não vai conseguir obter o tamanho das colunas nem no Abstract e nem no DefaultTableModel.
Eu acho que você realmente deveria voltar a estudar o AbstractTableModel e deixar de lado o Default. É um investimento que realmente vale a pena.
Mas, respondendo as suas perguntas. Para saber o tamanho das colunas, você deve perguntar ao JTable:
table.getColumn("UserName").getWidth();
Esse nome “UserName” é o identifier de sua coluna. Você pode defini-lo quando cria as colunas da tabela na mão.
JTable umaTabela = new JTable(new MeuModel());
umaTabela.setAutoCreateColumnsFromModel(false);
TableColumn coluna = new TableColumn();
coluna.setIdentified("UserName");
coluna.setModelIndex(0); //Índice da coluna no model
coluna.setPreferedWidth(200); //Tamanho desejado para a coluna
umaTabela.addColumn(coluna);
Para saber se a tabela foi clicada 2 vezes, adicione um listener a tabela:
umaTabela.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
if (evt.getClickCount() == 2) {
int row = umaTabela.getSelectedRow();
//Seu método aqui
}
}