Créer une interface graphique en Java

quelles sont les meilleures façons de créer une interface graphique en Java?

297
demandé sur Boann 2010-06-06 05:12:27

6 réponses

regardez le UUID class livré avec Java 5 et plus tard.

par exemple:

  • si vous voulez un UUID aléatoire, vous pouvez utiliser la méthode randomUUID .
  • si vous voulez qu'un UUID soit initialisé à une valeur spécifique, vous pouvez utiliser la méthode UUID constructor ou la méthode fromString .
281
répondu Mark Byers 2015-07-16 21:11:10

java.util.UUID.randomUUID();

341
répondu Kaleb Brasee 2010-06-06 01:16:03

cela dépend de quelle sorte de UUID vous voulez.

  • La Java standard UUID classe génère Version 4 (aléatoire) des Uuid. ( UPDATE - Version 3 (nom) des UUIDs peuvent également être générés.) Il peut également gérer d'autres variantes, bien qu'il ne puisse pas les générer. (Dans ce cas, "poignée" signifie construction UUID exemples de long , byte[] ou String représentations, et fournir certains accesseurs appropriés.)

  • Le Java Générateur d'UUID (CRUCHE) mise en œuvre vise à soutenir "toutes les 3 'officiel' types de UUID tel que défini par RFC 4122 " ... bien que le RFC définit en fait 4 types et mentionne un 5e type.

pour plus d'informations sur les types et variantes D'UUID, il y a un bon résumé dans Wikipedia , et les détails sanglants sont dans RFC 4122 et les autres spécifications.

29
répondu Stephen C 2017-09-13 22:56:00

juste pour étendre la réponse de Mark Byers avec un exemple:

import java.util.UUID;

public class RandomStringUUID {
    public static void main(String[] args) {
        UUID uuid = UUID.randomUUID();
        String randomUUIDString = uuid.toString();
        System.out.println("UUID=" + randomUUIDString );
    }
}
12
répondu Anton Belev 2016-10-10 09:37:37

les autres réponses sont correctes, en particulier celle-ci par Stephen C .

Pour Atteindre À L'Extérieur De Java

générant une valeur UUID dans Java est limitée à Version 4 (aléatoire) pour des raisons de sécurité.

si vous voulez d'autres versions D'UUIDs, une avenue est d'avoir votre Java app reach en dehors de la JVM pour générer des UUIDs en appelant:

  • utilitaire de ligne de Commande

    Livré avec presque tous les systèmes d'exploitation.

    par exemple, uuidgen trouvé dans Mac OS X, BSD, et Linux.
  • serveur de Base de données

    Utiliser JDBC pour récupérer un UUID généré sur le serveur de base de données.

    par exemple, l'extension "1519420920 uuid-ossp souvent groupée avec Postgres . Cette extension peut générer des Versions 1, 3, et 4 valeurs et en outre un couple de variations:
    • uuid_generate_v1mc() – génère une version 1 UUID mais utilise une adresse MAC multicast aléatoire au lieu de la véritable adresse MAC de l'ordinateur.
    • uuid_generate_v5(namespace uuid, name text) - génère une version 5 UUID, qui fonctionne comme une UUID version 3 sauf que SHA-1 est utilisé comme une méthode de hachage.
  • Web Service

    Par exemple, Générateur d'UUID crée les Versions 1 et 3 ainsi que nil "valeurs 151960920" et GUID .
6
répondu Basil Bourque 2017-05-23 12:18:20

vous pouvez utiliser ce code pour générer GUID.

 import java.util.concurrent.TimeUnit;

import org.apache.log4j.Logger;

public class StrictMicroSecondTimeBasedGuid
{
    private final static Logger logger = Logger
            .getLogger(StrictMicroSecondTimeBasedGuid.class);

    private static final long MICRO_IN_MILL = 1000;
    private static final long NANO_IN_MICRO = 1000;

    private static long baseNanoTime;
    private static long baseTimeInMicro;
    private static long lastGuid;

    static
    {
        /*
         * Nanosecond time's reference is not known, therfore following logic is
         * needed to calculate time in micro without knowing refrence point of
         * nano time*
         */
        baseNanoTime = System.nanoTime();
        baseTimeInMicro = System.currentTimeMillis() * MICRO_IN_MILL;
        lastGuid = baseTimeInMicro;
    }

    public static synchronized Long newGuid()
    {
        long newGuid;

        while ((newGuid = calNewTimeInMicro()) <= lastGuid)
        {
            /** we have to check for this log, we don't want to see log. */

            logger.debug("wait of 10-microsecond is introduced to get new guid");

            try
            {
                TimeUnit.MICROSECONDS.sleep(10);
            } catch (InterruptedException e)
            {
                logger.error("Error", e);
            }
        }

        lastGuid = newGuid;
        return newGuid;
    }

    private static long calNewTimeInMicro()
    {
        return baseTimeInMicro
                + ((System.nanoTime() - baseNanoTime) / NANO_IN_MICRO);
    }
}
-2
répondu user2044181 2017-11-27 16:17:18