2010-07-07 12 views
4

J'implémente un look personnalisé & Vous pouvez utiliser Synth pour mon application - fournissant essentiellement des versions personnalisées de SynthStyle, SynthPainter et SynthStyleFactory.Incrustations pour un effet de synthé personnalisé

Je suis et non en utilisant n'importe quel XML, c'est-à-dire que tout se fait via l'API Java. En général, cela fonctionne très bien.

La meilleure façon de définir des encarts appropriés s'avère toutefois un peu délicate. Je peux voir les différentes options:

  • Override getInsets pour SynthStyle pour revenir spécifiques pour chaque empiècements Région
  • Appliquer une bordure à l'aide de composants SynthStyle.installDefaults
  • lâchais tous les cartons intérieurs (0,0,0,0) et dans les méthodes compenser peinture
  • Créer de nouveaux délégués ComponentUI

Quelle serait la meilleure approche et pourquoi?

Répondre

1

Êtes-vous déjà arrivé à une décision à ce sujet? Voici mon opinion sur les choses ...

Surcharge getInsets() Apparaît comme une bonne solution si vous avez un style simple avec un petit nombre de contextes. Cela devrait aider à garder les encarts cohérents tout au long de votre interface graphique avec seulement un point de changement nécessaire. L'application d'une bordure vide aux composants semble un peu hackish à cette fin. Si vous devez appliquer une bordure personnalisée à un composant, vous pouvez supprimer la bordure vide par inadvertance, sauf si vous remplacez les méthodes setBorder() pour utiliser une bordure composée.

Mettre tous les insertions à 0 est inutile car ils commencent à 0 déjà ... Je serais très effrayé à l'idée de réécrire les méthodes de peinture! C'est généralement fait pour ajouter la touche finale aux composants, ne pas redéfinir leurs limites entières.

Je ne suis pas entièrement sûr de savoir comment créer un nouveau ComponentUI aiderait, car c'est principalement à faire avec le dimensionnement et la peinture (comme ci-dessus).

Je voudrais d'abord essayer l'option 1 car elle aura un effet global sur votre application, et ensuite commencer à travailler sur les exceptions et les contextes que vous souhaitez mettre en elle.