Hirdetés

Új hozzászólás Aktív témák

  • Aethelstone
    addikt

    Nem tudom reprodukálni, hogy a setVisible(true); miért kell azután, hogy hozzáadok vmit a kerethez.
    Itt megjelenik a 3 menüpont, ha a setVisible(true); -t az fw objektum utáni sorba helyezem át akkor is. Most akkor hogy van? Vmi értelmes leírás jól jönne, mert elvesztem kicsit :)

    package setvisibletesztelo;

    import java.awt.*;
    import javax.swing.*;



    public class SetVisibleTesztelo extends JFrame {

    public static void main(String[] args) {

    JFrame fw = new JFrame();
    fw.setSize(400, 200); // for screenshot
    fw.setDefaultCloseOperation(EXIT_ON_CLOSE);

    JPanel p5 = new JPanel(new GridBagLayout());
    p5.setVisible(true);

    fw.add(p5);

    JMenu menu = new JMenu("Menu");
    //menu.setVisible(true);
    menu.add("home");
    menu.add("about");
    menu.add("explore");

    JMenuBar menubar = new JMenuBar();
    fw.setJMenuBar(menubar); // THE UPDATED LINE OF CODE.
    //menubar.setVisible(true);
    menubar.add(menu);
    //p5.add(menu); // WTF?

    fw.setVisible(true); //should be done after all components are added
    }
    }

    forrás

    A válasz a threadben van:

    You need to call setVisible() after adding component! So first add all components. Add the highest level component to the JFrame(JPanel in your case) and the only call setVisible() for the JFrame. No need to call on every component.

    Tehát, előbb össze kell rakni a formot, alapból minden elem látható, kivéve a JFrame-t. Elég a végén azt láthatóvá tenni. Ha egy elem valamiért nem látszik, akkor az csak azért lehet, mert nincs vagy rosszul van felpakolva vagy explicit le van tiltva a láthatósága.

Új hozzászólás Aktív témák