Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Comportamento Anomalo JSwing

    Salve ragazzi,
    prima di tutto un saluto alla community visto che sono nuovo.
    Chiedo gentilmente aiuto riguardo un comportamento anomalo di JSwing.
    La situazione è questa:
    ho una classe MyPanelTab che estende JPanel.
    All'interno di questa classe gestisco 4 OGGETTI:
    1)un JPanel
    2)un JInternalFrame
    3)un JDesktopPane
    4)un JTabbedPane
    Ecco come compongo i 4 oggetti:

    panel = new JPanel();
    panel.setPreferredSize(new Dimension(600, 400));
    desk=new JDesktopPane();
    interSpec=newJInternalFrame();
    interSpec.setVisible(true);
    panel.add(desk.add(interSpec));
    //INFINE CREO LA TAB
    tabbed = new JTabbedPane(JTabbedPane.BOTTOM);
    tabbed.addTab("SPEC", panel);
    tabbed.setVisible(true);
    this.add(tabbed); //perchè la classe come scritto prima estende un JPanel


    Con questo codice creo un TAB con all'interno un FrameInternal, infine il TAB viene inserito in un pannello...
    IL CODICE COMPILA ED ESEGUE CORRETTAMENTE O MEGLIO COMPILA CORRETTAMENTE MA PRESENTA UN COMPORTAMENTO ANOMALO:
    Il frame interno tente a ritornare sempre nella stessa posizione di partenza, cioè posso spostarlo, portandolo in qualsiasi posizione ma quando rilascio il pulsante del mouse ritorna nella posizione iniziale, è come se ci fosse una molla che lo trattiene.
    Potreste per favore dirmi a cosa è dovuto questo comportamento??
    grazie mille,
    Federico.

    PS: versione JDK 1.6 su Xp e Look&Feel non settato, cioè quello di default.

  2. #2
    Salve ragazzi,
    ho trovato cosa provocava il comportamento anomalo...(effetto molla).
    In pratica quando si crea un Tab non bisogna passare il riferimento a JPanel ma al JDesktopPane direttamente.

    Cioè prima scrivevo...
    JDesktopPane desk=new JDesktopPane();
    JPanel panel=new JPanel();
    JInternalFrame iframe=new JInternalFrame();
    //lasciando perdere i settaggi di dimensioni e altro..
    panel.add(desk.add(iframe));

    JTabbedPane tab=new JTabbedPane();
    tabbed.addTab("Titolo Tab", panel);

    *************************
    INVECE omettendo JPanel e usando solo JDesktop e JInternaFrame, con la seguente istruzione

    tabbed.addTab("Titolo Tab",desk);


    FUNZIONAAAAAAAAAA!!!!
    Ciao e grazie comunque!

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.