Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da shaun87 Visualizza il messaggio
    nel metodo this.add(this.createMenu()); dichiarato sotto astratto,ho crato poi due specializzazioni che implementano tale metodo in due modi diversi,quando però le inizializzo la compilazione riporta questo errore Exception in thread "main" java.lang.IllegalArgumentException: adding container's parent to itself cosa vuol dire?
    Il problema della eccezione è facile da capire, in initView() fai un:

    return this;

    Qui this è la istanza del tuo AbstractView (il JWindow). E nel costruttore fai:

    getContentPane().add(initView());

    Ovvero la tua finestra cerchi di aggiungerla dentro il content-pane che è a sua volta contenuto nella finestra. Ovviamente non ha senso ....

    Ma a parte questo il tuo codice mostra cose dubbie/inutili. Innanzitutto setti 2 volte il CardLayout. Poi usi dei setBounds. I setBounds usati così direttamente sui componenti sono inutili se c'è un layout manager. Infatti è il layout manager che usa setBounds (o setLocation+setSize) per posizionare e dimensionare i componenti secondo i suoi criteri.

    Inoltre CardLayout si usa per "switchare" tra più componenti facendone vedere sempre e solo uno per volta. Ma per farlo bisogna dare un "nome" ai componenti. Con CardLayout si usa tipicamente il add() sul contenitore che ha anche un secondo argomento ovvero il "constraint" per CardLayout passando tipicamente una stringa:

    contenitore.add(card1, "nome-per-card1");

    Poi per switchare basta fare:

    ilCardLayout.show(contenitore, "nome-per-card1");

    Quindi onestamente ti suggerirei di approfondire meglio Swing, componenti/contenitori, layout manager, ecc... prima di "buttarti" su qualcosa di complesso come mi sembra di capire che stai cercando di fare ....
    Ultima modifica di andbin; 05-04-2014 a 16:27
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.