Le redimensionnement JTable colonnes automatiquement sur la base de la taille du texte

J'ai une JTable avec quelques champs avec texte long et certains avec peu de texte.

Par défaut, c'est à quoi il ressemble:

Le redimensionnement JTable colonnes automatiquement sur la base de la taille du texte

Remarquez comment le "Nom" et "Titre" lignes ne sont pas raccourcie.

Je voudrais savoir deux choses:

  1. Comment définir manuellement la largeur de l'en-tête(Telles que Nom, Titre, Nom de famille)
  2. Comment redimensionner automatiquement tous d'entre eux, selon le texte.

Voici le code:

    String[] columnNames = {"Name", "Title", "Surname", "ID"};
    Object[][] testData = {
            {"John", "Mr.", "Doe", "61020384U"},
    };

    nameTable = new JTable(testData, columnNames);
    nameTable.setFont(new Font("Tahoma", Font.PLAIN, 11));
    window.add(new JScrollPane(nameTable));

J'ai regardé le Swing Tutoriels mais soit je dois avoir manqué quelque chose ou il n'y est pas.

question à votre point de 2) How to automatically resize all of them depending on the text. vous dire en quelque sorte calculé max (par exemple Chaîne) longueur de chaque TableColumn et convertir les pixels

OriginalL'auteur David | 2011-08-11