Omdat een afbeelding meer zegt dan 1000 woorden, eerst een screenshot van mijn programmaatje:

Het rood omlijnde gedeelte is een JPanel dat op drie andere JPanels gebruikt moet worden (zie eerste drie tabs). Mijn vraag is nu hoe ik dit het beste realiseer. Ik heb geprobeerd om in de hoofdklasse van mijn programma het panel te initialiseren en dan toe te voegen aan de drie panels, maar dat werkt niet.
Dit werkt dus niet, het pnlSelectChamber panel wordt alleen getoond voor het laatste panel waar ik de add() method aanroep.
Nu kan ik natuurlijk wel de volgende workaround gebruiken:
Dit werkt wel, maar is natuurlijk een lelijke oplossing gezien er nu 3 dezelfde panels met dezelfde taak in het geheugen staan. Is er een andere (betere) manier om dit probleem op te lossen?

Het rood omlijnde gedeelte is een JPanel dat op drie andere JPanels gebruikt moet worden (zie eerste drie tabs). Mijn vraag is nu hoe ik dit het beste realiseer. Ik heb geprobeerd om in de hoofdklasse van mijn programma het panel te initialiseren en dan toe te voegen aan de drie panels, maar dat werkt niet.
Java:
1
2
3
| // In de hoofdklasse (CellCounter_): public static SelectChamberPanel pnlSelectChamber; pnlSelectChamber = new SelectChamberPanel(); |
Java:
1
2
| // In de drie tabbladen (panels): this.add(CellCounter_.pnlSelectChamber); |
Dit werkt dus niet, het pnlSelectChamber panel wordt alleen getoond voor het laatste panel waar ik de add() method aanroep.
Nu kan ik natuurlijk wel de volgende workaround gebruiken:
Java:
1
2
3
4
5
6
7
8
| // In de hoofdklasse (CellCounter_): public static SelectChamberPanel pnlSelectChamber1; public static SelectChamberPanel pnlSelectChamber2; public static SelectChamberPanel pnlSelectChamber3; pnlSelectChamber1 = new SelectChamberPanel(); pnlSelectChamber2 = new SelectChamberPanel(); pnlSelectChamber3 = new SelectChamberPanel(); |
Java:
1
2
| // In de drie tabbladen (panels): this.add(CellCounter_.pnlSelectChamberX); // Waarbij X = 1, 2 of 3 |
Dit werkt wel, maar is natuurlijk een lelijke oplossing gezien er nu 3 dezelfde panels met dezelfde taak in het geheugen staan. Is er een andere (betere) manier om dit probleem op te lossen?