2009-07-08 5 views
2

Quelques informations sur moi-même. Ancien type AS/400, récemment réduit et sans emploi. Profitant de cette opportunité pour apprendre Java. Je suis relativement nouveau pour Java et Netbeans. Comme je suis au chômage et que je ne travaille pas dans une organisation avec des «experts», j'essaie de trouver des ressources pour m'aider. Je suis à ATLanta, donc j'ai rejoint www.ajug.org dans l'espoir de travailler en réseau avec les gens pour trouver des ressources. J'ai aussi postulé pour des 'Obama Bucks' afin de suivre des cours. Jusque-là, j'espérais vous demander de l'aide!Retour d'une valeur à une classe Swing d'une autre classe Swing

J'ai développé la structure de sécurité et un menu dynamique pour une application SWING qui utilise MySQL. J'ai développé beaucoup d'applications SWING et compilé les classes qui effectuent la maintenance TABLE (Insérer/Mettre à jour/Supprimer) sur les TABLES que mon application utilisera. Maintenant, je suis dans le «nitty-gritty» de l'application. Je continue de trébucher sur des «trucs très simples» que je crois qu'un «architecte d'application SWING» ou l'un de vos experts Netbeans/SWING pourrait facilement répondre. En ce qui concerne Netbeans et renvoyer une valeur d'une classe SWING.


NetBeans crée deux ou plusieurs fichiers .java dans mes projets.
Exemple: projet desktopapplication contient - DesktopApplicationApp.java et - lui-même, puis au démarrage(), il fait un spectacle DesktopApplicationView.java Normalement, les lancements DesktopApplicationApp.java() (nouveau DesktopApplicationView (ce)). J'ai plusieurs tables TABLES "look up" et je veux créer des classes séparées qui permettent à l'utilisateur de chercher dans le TABLE une ligne de retour. (Ceci est OOP, right !?) Donc, si j'ai une application (DesktopApplicationApp et DesktopApplicationView) et je veux utiliser un autre SelectValueApp CLASS pour rechercher une base de données et retourner une valeur clé à DesktopApplicationView.

Mon "programme de menu" fait juste un execCMD() pour exécuter les classes dans mon application. Pour "CALLING" SelectValueApp de DesktopApplicationView Je sais que je devrais utiliser un constructeur et créer une instance de SelectValueApp .... mais quelle méthode puis-je utiliser pour "récupérer la clé" de la classe? Puis-je simplement lancer() le SelectValueView de DesktopApplicationView?

J'ai lu, "En utilisant le cadre d'application Swing (JSR296)" et je ne suis toujours pas clair sur la façon de le faire. Je pense que quand SelectValueApp termine EXIT(), il provoquera un arrêt de la JVM (et kill DesktopApplicationView).

Je pourrais inclure la fonctionnalité de SelectValueView dans DesktopApplicationView mais ce programme est déjà énorme!

J'ai donc plein de questions. 1) Comment j'accomplis cela? (S'il vous plaît). De plus, j'ai référencé ces articles et ils sont "très proches" de ce que j'ai besoin de savoir.
questions/1091389/comment-transférer-des-objets-de-jframe-à-autre-jframe questions/573317/java-swing-fermer-fenêtre-sans-sortie-application questions/573378/managing-parent- frame-from-child-frame-on-java-swing

2) Est-ce une limitation de "SingleFrameApplication"? (Essayer d'ouvrir une autre image pour retourner la valeur) 3) Dois-je mettre toutes les fonctionnalités dans MyApplicationView? 4) Ou est-ce que le code généré par Netbeans rend cette tâche difficile et qu'il existe un moyen simple et élégant d'y parvenir?

AUSSI, je vais créer un court, autoportantes correct (compilable), Exemple (SSCCE) et mettre à jour ce post

vous remerciant à l'avance,

actuel Java Débutant/Future Java CSD et Java Heavyweight,

+0

FYI: Swing n'est pas un acronyme, vous n'avez donc pas besoin de l'écrire en majuscules. –

+0

Peut-être que vous devriez poser des questions plus courtes et laisser de côté l'histoire de votre vie, aussi intéressante soit-elle. Moi pour moi-même arrêté de lire après la 1ère phrase. – Kutzi

Répondre

1

Je ne suis pas sûr que de nombreux projets utilisent le cadre d'application Swing. Il est déjà immature ont ainsi à mon humble avis

et entreprises leurs « propres » des cadres ou des solutions pour accélérer le développement ou

accord avec contrariétés communes.

Je suggère d'examiner la documentation de JSR296 dans les détails. D'ailleurs, vous n'avez pas besoin de nous dire tout votre contexte, les gens vont vous aider s'ils le peuvent.

+0

J'ai déjà lu et relu et relu JSR296. Mais merci. Cependant, j'ai décidé en fonction de ma courte session de débogage de 72 heures. qu'il n'y a absolument aucun moyen d'accomplir cela. Une fois que la seconde classe PickValue() est .setVisible (true) une nouvelle EDT est démarrée .... vous ne pouvez jamais obtenir une valeur de retour. Quoi qu'il en soit, j'ai l'intention d'employer MQ/Series ou un écouteur de socket pour les classes à communiquer. Je rechercherai certaines des façons dont l'IPC (Inter Process Communication) est couramment implémenté. J'espère pouvoir obtenir une preuve de concept dans les prochaines 24 heures. Merci encore! –

+0

La méthode 'setVisible()' de '' 'PickValue'' ne devrait bloquer que si' PickValue' est une boîte de dialogue modale. Il me semble que pour cette application, ce serait mieux si c'était non-modal, ou même un 'JFrame' indépendant. Tant que ce n'est pas modal, les deux fenêtres doivent partager le même EDT. –

0

Le cadre d'application de Swing est mort dans l'eau - d'après ce que j'entends, la plupart des développeurs ont été déplacés vers JavaFX.

En ce qui concerne votre problème de conception générale - y a-t-il une raison pour laquelle les différentes pièces doivent être des applications distinctes? Mon instinct est que vous n'avez pas besoin de faire cela, et que par conséquent vous n'avez pas besoin d'un écouteur de socket, vous avez juste besoin de callbacks pour que les classes qui doivent se parler puissent le faire de manière événementielle.