Comment ajouter JTable dans un Composite avec null mise en page?
Je veux ajouter JTable
en JPanel
dont la mise en page est null
. JPanel
contient d'autres composants. Je dois ajouter JTable
à la bonne position.
- juste pour insister jzd réponse: oublier null mise en page. C'est certainement de l'onu-swing new'ish - soit d'apprendre à l'aide de LayoutManagers ou d'utiliser une autre langue.
Vous devez vous connecter pour publier un commentaire.
Imbriquée/Combinaison Exemple De Disposition Des
La Java Tutoriel a des informations complètes sur l'utilisation de gestionnaires de disposition. Voir la La pose des Composants Dans un Conteneur leçon pour plus de détails.
Un aspect de mises en page qui est pas bien couvert par le tutoriel est que de imbriqués les mises en page, de mettre une mise en page à l'intérieur de l'autre pour obtenir des effets complexes.
Le code suivant met une variété de composants dans un cadre de démontrer comment utiliser imbriqués les mises en page. Toutes les mises en page qui sont explicitement définis sont présentés sous un intitulé transfrontalière pour le panneau sur lequel ils sont utilisés.
Aspects notables de ce code sont:
Nimbus PLAF
NestedLayoutExample.java
D'Autres Captures D'Écran
Windows PLAF
Mac OS X Aqua PLAF
Ubuntu GTK+ PLAF
N'utilisez pas un null mise en page. Apprendre à utiliser LayoutManagers:
http://download.oracle.com/javase/tutorial/uiswing/layout/using.html
LayoutManagers vous permettent de gérer correctement les choses redimensionnement de la fenêtre ou de la composante dynamique qui compte. Ils peuvent sembler intimidant au début, mais ils en valent l'effort d'apprendre.
Que je me souvienne, la null disposition signifie une position absolue de sorte qu'il sera très difficile de vous compter le point X pour votre JTable coin supérieur gauche de l'emplacement. Mais si vous voulez juste avoir tous les composants du panneau, un par un, vous pouvez utiliser FlowLayout() gestionnaire de
ou si vous avez besoin pour remplir le tableau, vous devez utiliser GridLayout() comme...
Bonne chance
Si vous utilisez null layout manager vous avez toujours besoin de définir les limites d'un composant.
C'est le problème dans votre cas.
Vous devez faire ce que tout le monde suggèrent ici et de passer et utiliser un layout manager croient gagner du temps.
Aller et découvrez le tutoriel de @jzd post.
Profiter, Boro.
JTable
doit être ajouté dans leJScrollPane
qui, en fait, devraient être ajoutés dans leJPanel
.La
JPanel
devrait avoir un peu de mise en page manager.Si vous n'avez pas de soins sur la précision des composants de taille, vous pouvez l'utiliser pur
BorderLayout
et de le combiner avecFlowLayout
etGridLayout
. si vous avez besoin de précision, l'utilisation jgoodiesFormLayout
.La
FormLayout
est vraiment difficile, mais vous pouvez jouer un peu avecWindowBuilder
(qui est intégré dans Eclipse) et de regarder le code qu'il génère. Il peut sembler compliqué, mais c'est juste de l'ignorance.Bonne chance.
Tout d'abord, vous devriez sérieusement envisager d'autres gestionnaires de Disposition, par exemple les BorderLayoutManager (nouveau Composite(new BorderLayout())) est un bon début.
Également lors de la conception de votre boîte de dialogue, n'oubliez pas que vous pouvez et devriez nest vos mises en page: un Composite à l'intérieur d'un autre Composite (par exemple, un GridLayout à l'intérieur d'un BorderLayout). Veuillez noter: une "bonne" boîte de dialogue devrait redimensionner correctement, de sorte que si l'utilisateur redimensionne votre Image, vous voulez étendre automatiquement vos informations des objets tels que votre tableau, et ne montrent pas de grandes zones de Composite arrière-plan. C'est quelque chose que vous ne pouvez pas atteindre avec une NullLayout.
Mais il y a probablement des cas - quelque part dans ce grand monde où un NullLayout est juste la chose. Alors, voici un exemple:
Lorsqu'un composant ont une valeur "null" mise en page, vous avez à gérer la mise en page par vous-même, cela signifie que vous devez calculer les dimensions et les emplacements pour les enfants de la composante de décider où ils sont tirés. Assez fastidieux, sauf si c'est absolument nécessaire.
Si vous voulez vraiment que le contrôle fin, peut-être essayer GridBagLayout abord avant d'aller mudding avec l'INTERFACE utilisateur arrangement.
Vous pouvez utiliser le code suivant. Pour ajouter JTable pour un Composite.
Espère que cette aide.
modèle de table dépend de votre exigence
De l'essayer.