Comment modifier/ajouter du code à la méthode initComponents()
en Java sur NetBeans? Lorsque j'essaie d'ajouter une ligne de code, cette zone semble être en lecture seule et est surlignée en gris! C'est probablement pour la sécurité, mais je suppose qu'il y a un moyen de le désactiver.
La méthode initComponents () est régénérée par IDE lors de la création de votre interface utilisateur dans l'éditeur d'interface graphique. La méthode est "protégée" pour empêcher cette régénération d'écraser le code écrit par l'utilisateur.
Il existe deux manières d'ajouter du code à cette méthode, indirectement:
Déposez un nouveau composant sur le "canevas" de l'éditeur de conception Pour la fenêtre.
Saisissez le code dans l’une des propriétés de code suivantes: , Code de pré-création, post-création , Code de pré-initiation, code de post-initiation, Code post-auditeur, Code Pré-population, Code post-population et Code après définition.
Il existe quelques autres propriétés de code qui ne modifient pas la méthode initComponents () ... mais qui peuvent être très utiles: code de pré-déclaration et code de post-déclaration. texte alt http: // blogs. Sun.com/vkraemer/resource/code-properties.png Remarque: l'éditeur de ces propriétés n'est pas "riche", je vous recommande donc de créer des méthodes dans "l'éditeur normal" que vous venez d'appeler. les initComponents ().
Vous pouvez modifier le code dans la méthode initComponents () en positionnant ou en modifiant les propriétés "normales" du "panneau de base" ou des contrôles.
Oui, la méthode initComponents est en lecture seule pour garder le contrôle total de l'EDI. Vous pouvez ajouter le vôtre dans le constructeur juste après initComponents.
public class NewJFrame extends javax.swing.JFrame {
/** Creates new form NewJFrame */
public NewJFrame() {
initComponents();
myInitComponents();
}
public void myInitComponents() {
}
Vraisemblablement, vous écrivez une application à l'aide de l'outil graphique Matisse.
Matisse génère des blocs de code non modifiables. Cela est requis par Matisse pour que l'outil reste synchronisé avec la base de code.
Matisse propose un certain nombre d'options pour permettre l'insertion de code personnalisé avant, après ou dans les blocs de code, tels que initComponents()
.
Voir l'image ci-dessous:
Ceci affiche l’onglet Propriétés d’un jPanel et certaines des options d’insertion de code.
Si vous cliquez avec le bouton droit sur le composant dans le Design View
, puis cliquez sur la sélection "Customize Code
", vous pouvez modifier le code dans le code InitComponent
. Plusieurs lignes de code explicite peuvent être personnalisées.
Pour autoriser les modifications à la fois dans l'éditeur source et dans l'interface graphique de Matisse, NetBeans empêche toute modification dans ce qu'il appelle des "blocs protégés". Vous pouvez imaginer que IDE puisse interpréter presque tous les types de code d'interface graphique vous écrivez, en pratique, il est beaucoup plus facile pour les développeurs IDE d'encapsuler le code d'interface graphique généré automatiquement dans une seule méthode (initComponents ()) et de laisser le reste à éditer.
Si vous êtes certain de savoir ce que vous faites, vous pouvez facilement modifier le fichier .Java à partir d'un éditeur externe, mais:
J'ai découvert par essais et erreurs que l'initialisation, qui doit être effectuée avant que l'utilisateur voie le panneau, devrait être ajoutée en tant que "code de pré-initialisation". Dans mon cas, je devais remplir une liste déroulante (appelée "Choix" dans AWT). Il semble y avoir très peu de documentation détaillée sur l’utilisation de Matisse. Donc, j'espère que cela aidera les autres.
sélectionnez tout le code et copiez-le dans un éditeur externe comme gedit ou notepad.
Ensuite, supprimez votre fichier jframe.
Créez une nouvelle classe Java dans Netbeans dans le même package avec le même nom.
Copiez tout le contenu du fichier d'édition et collez-le dans la classe Java que vous venez de créer.