Bonjour à tous ! (encore moi oui j'ai bien eu deux petit soucis aujourd'hui)
Alors maintenant, j'ai un problème de cast, je viens de me rendre compte que une méthode renvoi un Object (ou un conteneur).
A partir de cette Object, on fait un petit .getClass().getName() et on a le type du l'Object.
Je me demande comment pouvoir cast cet Object en son type réel que l'on a en .getClass().getName()
Donc si vous avez pas bien compris (oui oui j'explique un peu mal)
Voici voilà, un exemple de code, et ce que j'aimerais pouvoir faire :
Ce que j'ai :
Donc pour explication, ma ConfigUI c'est l'User Interface qui contient une frame, cette dernière peut être getFrame()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 static final public void build(final ConfigUI configUI) { System.out .println(configUI.getFrame().getLayout().getClass().getName());
le problème, c'est que cette frame contient ça :
Ce que j'aimerais avoir c'est le GridLayout sauf que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 GridLayout gridLayout = new GridLayout(4, 1, 5, 5); frame.getContentPane().setLayout(gridLayout);
Quand je fais ça, j'ai pas un GridLayout mais un LayoutManager
Et là le problème c'est que le printf m'affiche bien que c'est un java.awt.BorderLayout, mais je peux pas utiliser de setRows() qui n'est spécifique qu'à un java.awt.BorderLayout.
ce que j'aimerais faire c'est ça :
Sauf que bien évidemment ça marche pas bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //cast bien gros bien sale ((configUI.getFrame().getLayout().getClass().getName())configUI.getFrame().getLayout()).setRows(5);
Et c'est pas faute de ne pas avoir cherché sur google !
Alors si vous pouvez m'aider, j'aimerais savoir si :
Il y a une manière simple de cast un Object en son "type réel" (j'entend par là ce que l'on voit quand on syso(object.getClass().getName()) ; )
Voilà, si il y a effectivement un truc comme ça, ça pourrait être sympa !
Partager