[NetBeans versie 5.5] JPanels setVisible(False)

Pagina: 1
Acties:

  • Jigs
  • Registratie: April 2004
  • Laatst online: 17-01-2024
Beste Allemaal.
Ik heb onlangs NetBeans versie 5.5 gedownload. Dit omdat ik had gehoord dat je met NetBeans nogal makkelijk Gui's kan bouwen door middel van de 'sleur en pleur'-methode.
Ik heb al een aantal jaren ervanring met het programmeren van Java. Maar toch loop ik tegen het volgende ogenschijnlijk simpele dingetje aan.
Ik wilde op een JFrame een panel zetten. Geen probleem. Nu wilde ik die Panel op setVisible(false) zetten. En jullie denken dat dit zomaar gaat?
Ten eerste: setVisible staat niet bij een van de properties.
Ten tweede: de code aanpassen lijkt eenvoudiger dan het is.
NetBeans heeft de gewoonte om deze code onderaan te zetten:

code:
1
2
3
4
5
6
7
8
9
10
11
 // Variables declaration - do not modify                     
    private javax.swing.JMenu New;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration


Dit maakt het niet mogelijk om iets te doen in code met de componenten. Letop er staat: "do not modify" Maar je kunt het niet eens aanpassen. Dus zit ik eigenlijk een beetje vast.
Heeft iemand een workaround?

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 01-12 19:51

Robtimus

me Robtimus no like you

Jigs schreef op maandag 12 februari 2007 @ 23:17:
Ten eerste: setVisible staat niet bij een van de properties.
Probeer eens de property visible.

In Java moet je properties in 99.99% van de gevallen aanspreken dmv zogenaamde getters en setters.
Setters hebben de naam van de property met een hoofdletter, en set ervoor. Voorbeelden zijn setVisible, setForeground, setText, setEnabled, setSelected.
Getters idem maar dan get ipv set. Voor booleans wil ook nog wel eens is gebruikt worden. Voorbeelden: isVisible, getForeground, getText, isEnabled, isSelected.
Ten tweede: de code aanpassen lijkt eenvoudiger dan het is.
NetBeans heeft de gewoonte om deze code onderaan te zetten:

code:
1
2
3
4
5
6
7
8
9
10
11
 // Variables declaration - do not modify                     
    private javax.swing.JMenu New;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration


Dit maakt het niet mogelijk om iets te doen in code met de componenten. Letop er staat: "do not modify" Maar je kunt het niet eens aanpassen. Dus zit ik eigenlijk een beetje vast.
Heeft iemand een workaround?
1) je kan deze code perfect verplaatsen, zolang je maar niets weglaat.
2) In Java maakt het qua classe- of instantievariabelen (variabelen die zich niet in een method of functie bevinden) niet uit waar ze gedeclareerd worden, onderaan, bovenaan, in het midden, etc. Je kan de code dus onderaan laten staan en toch deze variabelen gebruiken in je code. Het is immers Java, niet C(++).

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Jigs
  • Registratie: April 2004
  • Laatst online: 17-01-2024
Hoi IceManX

Je kan de code niet verplaatsen om dat dat niet mag in NetBeans. Daarom mijn vraag hoe kan ik de propertie visible(false); toevoegen aan het object

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 01-12 19:51

Robtimus

me Robtimus no like you

Hoi ;)
Je kan de code niet verplaatsen om dat dat niet mag in NetBeans.
Die beperking is dan alleen door NetBeans opgelegd, want voor Java maakt het niets uit. Maar dan nog: je kan de variabelen gewoon in je code gebruiken, maar alleen in de classe zelf. Zodra je ze in een andere classe wilt aanpassen, moet je daarvoor aparte methods / functies maken.
Daarom mijn vraag hoe kan ik de propertie visible(false); toevoegen aan het object
Weet je wat een constructor is? Daar kun je als het goed is nml ook gewoon code neerzetten. In dit geval
Java:
1
jPanel1.setVisible(false);

Als het een applet is kan het trouwens ook in de init() method.

More than meets the eye
There is no I in TEAM... but there is ME
system specs