jtable

Mattepuffo's logo
Autoresize delle colonne in JTable

Autoresize delle colonne in JTable

Quando la JTable viene "disegnata", non sa a priori di che lunghezza sono i dati delle varie colonne.

Quindi imposta una dimensione di default per tutte.

Oppure si prende quelle che gli abbiamo impostato noi da codice.

Se invece volessimo fare in modo che si auto-ridimensionino?

Mattepuffo's logo
Creare file XML in Java con JAXB

Creare file XML in Java con JAXB

In ambito Java, le API più conosciute per la manipolazione dei file XML sono sicuramente SAX e DOM.

A queste possiamo aggiungere JAXB (Java Architecture for XML Binding), che ha un approccio ancora differente.

Quale sia meglio tra le tre possibilità, penso dipenda soprattutto da quello che si vuole ottenere.

Comunque con JAXB mi ci sono trovato bene, ed oggi ne vediamo un esempio.

Mattepuffo's logo
Riempire una JTable da XML

Riempire una JTable da XML

Abbiamo parlato varie volte di JTable, anche come riempirla da database o da JSON.

Oggi vediamo come riempirla da XML.

Partiamo da un file del genere:


<?xml version="1.0" encoding="UTF-8"?>
<clienti>
  <cliente>
    <ragione_sociale>CASA</ragione_sociale>
    <email>casa@casa.it</email>
  </cliente>
  <cliente>
    <ragione_sociale>UFFICIO</ragione_sociale>
    <email>uff@uff.it</email>
  </cliente>
</clienti>

Come vedete l'elemento principale si chiama clienti, e poi c'è un elemento per ogni cliente.

Ogni elemento cliente ha, a sua volta, un elemento ragione_sociale e un elemento email.

Mattepuffo's logo
JTable drag and drop

JTable drag and drop

Oggi vi propongo una classe, per certi versi un pò "vecchiotta", per impostare il drag and drop su una JTable.

In sostanza voglio poter spostare le righe di una JTable, e metterle nell'ordine che mi pare.

Per ottenere questo dobbiamo impostare alcune opzioni e un transfer handler:

myTable.setDragEnabled(true);
myTable.setDropMode(DropMode.INSERT_ROWS);
myTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
myTable.setTransferHandler(new MyTransferHandler());

Dove MyTransferHandler è una classe che estende TransferHandler.

Mattepuffo's logo
Svuotare JTable

Svuotare JTable

JTable è un componente di Java Swing molto usato.

Anche se può sembrare strano, svuotare una JTable non richiede un singolo comando; o almeno quello che vi propongo è l'unic che mi ha funzionato.

Sarà, forse, dovuto al fatto che io uso un DefaultTableModel personalizzato (che vi posto per semplice chiarimento):

public class MyTableModel extends DefaultTableModel {

    public MyTableModel(Object[][] data, String[] col) {
        super(data, col);
    }

    @Override
    public boolean isCellEditable(int row, int column) {
        return false;
    }
}

Comunque vi propongo un metodo che permette di svuotare una JTable.

Mattepuffo's logo
Impostare l'altezza delle righe in una JTable

Impostare l'altezza delle righe in una JTable

In questi giorni ho ripreso in mano Java, e nello specifico sto lavorando molto con le JTable.

Oggi vi svelo due modi per impostare l'altezza delle righe.

Il primo modo agisce direttamente sulla tabella interessata.

Nel costruttore del JFrame, dopo l'inizializzazione della JTable:

tbl.setRowHeight(20);

Nel caso di una sola tabella, o nel caso in cui ogni tabella ha una proprio impostazione, possiamo procedere in questo modo.

Nel caso in cui si hanno più JTable che devono avere la stessa impostazione, questo è scomodo perchè questo comando andrebbe ripetuto per ogni tabella.