Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

integrer des composants dans un Component

3 réponses
Avatar
phil89
Bonjour

J'ai un projet dont tous les objets heritent de Component et non pas
de Panel.
Et il possible d'inserer le Panel dans le Component et d'en faire
afficher le contenu de celui ci ?

Merci d'avance de vos suggestiond
Philippe

3 réponses

Avatar
TGITS
On 31 mar, 09:35, phil89 wrote:
Bonjour

J'ai un projet dont tous les objets heritent de Component et non pas
de Panel.
Et il possible d'inserer le Panel dans le Component et d'en faire
afficher le contenu de celui ci ?

Merci d'avance de vos suggestiond
Philippe


Bonjour,
La classe Panel hérite de la classe Container qui hérite elle-même de
Component comme beaucoup de classes correspondant à des éléments de
l'interface graphique ("A component is an object having a graphical
representation that can be displayed on the screen and that can
interact with the user." --> Javadoc pour la classe Component).
Je ne comprends pas exactement ce que tu souhaites faire précisément :
pourrais-tu préciser ?

Christophe

Avatar
phil89
Bonjour

J'ai actuellement un projet qui contient plusieurs objets. ceux ci
sont serialise sur le disque, et affiche ou non suivant certaines
conditions .
Ils heritent tous de Component . Je dois maintenant pouvoir integrer
un composant de type tableau .
Si je fais heriter tous mes composants de Panel cela pose un soucis
dans les autres composants,
je me demandais si je pouvais integrer un panel dans un objet herite
de component, et en faire afficher les contenu .
J'ai deja fait quelques essais en redefinissant la methode paint, mais
les scrollbar de mon tableau pose probleme

Merci d'avance
Philippe
Avatar
TGITS
Bonjour,
j'avoue que je ne suis pas sûr d'avoir compris quel était ton
problème...

J'ai actuellement un projet qui contient plusieurs objets. ceux ci
sont serialise sur le disque, et affiche ou non suivant certaines
conditions .
jusque-là ok.


Ils heritent tous de Component . Je dois maintenant pouvoir integrer
un composant de type tableau .
Tableau --> JTable ?

Le composant de type Tableau fait partie des objets sérialisés?

Si je fais heriter tous mes composants de Panel cela pose un soucis
dans les autres composants,
Ne peux-tu utiliser de la composition plutôt que de l'héritage ?

Tu pourrais par exemple créer une classe Panel dédiée qui aurait un
attribut Component qui prendrait l'un de ces objets sérialisés pour
affichage... mais encore une fois je ne saisis parfaitement ce que tu
veux faire...

je me demandais si je pouvais integrer un panel dans un objet herite
de component, et en faire afficher les contenu .
Les contenus de quoi ? des objets sérialisés ? Pourquoi passer par un

panel pour les afficher ?
Et tu ne peux pas faire l'inverse, "intégrer" (par composition) le
component dans le Panel ?

J'ai deja fait quelques essais en redefinissant la methode paint, mais
les scrollbar de mon tableau pose probleme
Est-ce que c'est pour pouvoir avoir des Scrollbar avec la JTable ? Si

oui tu devrais jeter un oeil sur le tuto de Sun sur Swing
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html.

J'ai reproduit ci-après le bout qui pourrait t'intéresser :

---------
Adding a Table to a Container

Here is typical code for creating a scroll pane that serves as a
container for a table:

JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);

The two lines in this snippet do the following:

* The JScrollPane constructor is invoked with an argument that
refers to the table object. This creates a scroll pane as a container
for the table; the table is automatically added to the container.
* JTable.setFillsViewportHeight is invoked to set the
fillsViewportHeight property. When this property is true the table
uses the entire height of the container, even if the table doesn't
have enough rows to use the whole vertical space. This makes it easier
to use the table as a drag-and-drop target.

The scroll pane automatically places the table header at the top
of the viewport. The column names remain visible at the top of the
viewing area when the table data is scrolled.

If you are using a table without a scroll pane, then you must get
the table header component and place it yourself. For example:

container.setLayout(new BorderLayout());
container.add(table.getTableHeader(),
BorderLayout.PAGE_START);
container.add(table, BorderLayout.CENTER);
--------



Merci d'avance


Je ne sais pas si ma réponse t'aidera...

Christophe