en réponse à un Question précédente sur la façon d'obtenir un certain effet avec Swing , J'étais dirigé vers Jdesktoppane et Jinternalframe. Malheureusement, Scala.Swing ne semble pas avoir de wrapper pour l'une ou l'autre classe, donc je suis laissé avec l'étendre. P>
Qu'est-ce que je dois savoir et faire pour faire des emballages minimalement utilisables pour ces cours, à utiliser avec et par scala.swing em> et quelles seraient les étapes supplémentaires à faire la plupart d'entre eux? p>
Comme suggéré par quelqu'un, laissez-moi vous expliquer l'effet que j'ai l'intention d'atteindre. Mon programme contrôle les paris de la loterie (personnel). Donc, j'ai un certain nombre de billets différents, chacun pouvant avoir un certain nombre de paris différents et des validités variables. P>
L'idée affiche chacun de ces billets dans un "espace" séparé et les jintinalframes semblent être exactement ce que je veux, et laissez les gens créer de nouveaux billets, chargez-les des fichiers, de les enregistrer dans des fichiers et de la vérification générale ou Édition des informations dans chacun. P>
En outre, il doit y avoir un espace pour afficher les résultats de la loterie et j'avais l'intention d'évoluer le programme pour pouvoir contrôler les paris collectifs - qui a contribué à quel point et comment gagnant la victoire devrait être divisée. Je n'ai pas encore considéré l'interface pour cela. P>
Veuillez noter que: p>
Je ne peux pas "utiliser simplement" les classes Java et profiter pleinement des fonctionnalités Scala Swing. Les réponses dans la question précédente me disent déjà comment faire ce que je veux avec les cours de Java, et ce n'est pas ce que je demande ici. P> li>
lire le code source des classes de scala.swing existantes pour apprendre à faire est le travail que j'essaie d'éviter avec cette question. P> LI>
ul>
5 Réponses :
Vous pouvez importer toutes les bibliothèques Java directement dans votre code SCALAA. p>
Essayez la section du didacticiel Scala: "Interaction avec Java". P>
Java à Scala P>
Vous pourriez être en mesure d'utiliser la source scala.swing code> comme référence par exemple. HTTP: // Lampsvn. epfl.ch/svn-repos/scala/svnala/trunk/src/swing/scala/swing/button.scala p>
Quel genre de fonctionnalités Scala essayez-vous d'utiliser avec elle? Cela pourrait aider à venir avec une réponse. C'est à dire. - Qu'est-ce que vous essayez de faire avec cela, potentiellement en Java? Ensuite, nous pouvons essayer de trouver un moyen plus agréable de le faire avec Scala et / ou de créer une enveloppe pour les classes qui feraient ce que vous essayez de faire encore plus facilement. P>
Assez juste. Je vais ma vie ma question.
Merci pour les informations supplémentaires, mais je voulais dire à un niveau plus technique - c'est-à-dire de manière programmatique, que voulez-vous faire avec la classe Swing?
Vous pouvez envisager le mécanisme "conversions implicites" de Scala. Vous pouvez faire quelque chose comme ceci:
val jif = new JInternalFrame() println(jif.showThis);
J'aurais peut-être dû être plus explicite dans la description de ma question. Comme la question elle-même dit, je souhaite étendre Scala.swing. Comment puis-je prolonger scala.swing i>? Une réponse qui ne mentionne même pas un seul trait, une classe ou une méthode de scala.swing ne peut pas répondre à la question de répondre à la question!
Dans Jruby, vous pouvez mélanger une (ou plusieurs) traits dans JDESKTOPPANE ou Jinternalframe au lieu de les prolonger. De cette façon, vous n'auriez pas à envelopper les cours mais n'utilisez simplement que les objets existants. Autant que je sache, cela n'est pas possible avec des traits Scala. P>
Heureusement, il y a une solution, presque aussi flexible que Ruby's: classes lexiquement ouvertes . Cet article de blog donne une excellente introduction, IMHO. P>