6
votes

Date de format en JTable / Resultset

J'ai des problèmes d'affichage date s dans le format que je veux dans mon JTABL . Mon JTable a été créé à l'aide d'un résultateur et de listes.

J'ai essayé ce qui suit dans getvalueat (.) mais pas de chance: xxx

println (.) n'est jamais imprimé, il n'y a même pas même à cela. Le format qui est affiché est 10 avril 1992 mais je veux 04/10/92

pendant que nous sommes sur le sujet de Date dans Jtales ... J'ai Iscelleditable (.) comme vrai mais je ne peux pas modifier les cellules de date. Comment faites-vous cela?


5 commentaires

Vérifiez si votre condition «instanceof» fait référence à java.util.date ou à java.sql.date.


Des exceptions et des structures? Postez-les.


Eh bien, les Resulatset deviennent SQL.Date je crois. Pas d'exception ni d'erreurs


Doit admettre que je suis surpris que l'OP ait accepté la réponse sur le formatage réutilisable que j'ai fourni ci-dessous. Étant donné que le code ci-dessus est essentiellement un hack pour réinitialiser la valeur utilisée par le rendu, je penserais qu'il serait plus simple de remplacer la méthode SETValue () du rendu. N'est-ce pas la façon dont l'API a été conçue pour être utilisée? C'est également l'approche présentée dans le lien vers le didacticiel pivotant indiqué ci-dessus. Peut-être que je manque quelque chose?


J'aime les deux réponses. Impossible d'accepter tout le monde: \ Désolé - j'aimerais pouvoir accepter les deux.


4 Réponses :


16
votes

Ne remplacez pas getvalue , utilisez un nappellrenderer à la place: xxx



6
votes

Le format qui est affiché est 10 avril 1992

On sonne comme une représentation de tôt () de la date est en cours de stockage dans le tabliote et non un objet de date. Vous devez donc vérifier comment vos données sont copiées des Resultats à la tablette. Assurez-vous d'utiliser la méthode Resulatset.getObject (). Ou peut-être que le problème est que vous stockez une chaîne dans votre base de données formaté comme vous le voyez.

Quoi qu'il en soit, une fois que vous pouvez stocker réellement un objet de date dans le tablemodel, consultez Format de table Renderers qui vous permet de créer un rendu personnalisé avec un format de date personnalisé dans une seule ligne de code.


1 commentaires

+1, je ne pense pas que vous manquiez quelque chose. Cette approche est meilleure que la mienne.



4
votes

Vous devez créer une sous-classe de refletTablecellrenderer et de remplacement setValue (objet) code> puis définissez le rendu de cellule de la colonne entière.

public class DateCellRenderer extends DefaultTableCellRenderer {
    public DateCellRenderer() { super(); }

    @Override
    public void setValue(Object value) {
        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy");

        setText((value == null) ? "" : sdf.format(value));
    }
}


0 commentaires

-5
votes

Il y a une tierce partie ajouter sur. moment.js .

juste l'ajouter via Nuget, Déplacez les scripts dans votre fichier de scripts de contenu. Ajoutez cette ligne (exemple)

JavaScript: xxx

et ensuite nous changeons notre déclaration de champ dans JTAble.

JavaScript: < / p> xxx


0 commentaires