Salut! En tant que fournisseur de Swing Screen, j'ai reçu beaucoup de questions ces derniers temps sur la façon d'ajouter un volet divisé à un Swing Screen. J'ai donc pensé rédiger cet article de blog pour partager quelques trucs et astuces que j'ai appris au fil des ans.
Tout d’abord, parlons de ce qu’est un volet divisé et pourquoi vous souhaiterez peut-être en ajouter un à votre écran Swing. Un volet divisé est un composant d'interface graphique qui divise un conteneur en deux ou plusieurs sous-conteneurs redimensionnables. Cela peut être très utile dans un écran Swing car cela vous permet d'afficher plusieurs types d'informations côte à côte et les utilisateurs peuvent ajuster la taille de chaque section en fonction de leurs besoins.
Étape 1 : Comprendre les bases des volets divisés dans Java Swing
Dans Java Swing, leJSplitPaneLa classe est utilisée pour créer des volets divisés. Il a deux orientations principales :HORIZONTAL_SPLITetVERTICAL_SPLIT. LeHORIZONTAL_SPLITdivise le conteneur horizontalement, tandis que leVERTICAL_SPLITle divise verticalement.
Voici un exemple de code simple pour créer un volet divisé horizontal de base :
importer javax.swing.* ; importer java.awt.* ; public class SimpleSplitPaneExample { public static void main(String[] args) { JFrame frame = new JFrame("Simple Split Pane"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600); JPanel leftPanel = new JPanel(); leftPanel.setBackground(Color.RED); JPanel rightPanel = new JPanel(); rightPanel.setBackground(Color.BLUE); JSplitPane splitPane = nouveau JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, rightPanel); frame.add(splitPane); frame.setVisible(true); } }
Dans cet exemple, nous créons unJFrame, deuxPanneauJobjets (un rouge et un bleu), puis unJSplitPanequi divise le cadre horizontalement entre ces deux panneaux.
Étape 2 : ajout de composants au volet divisé
Maintenant que vous avez configuré le volet divisé de base, vous souhaiterez probablement y ajouter des composants utiles. Pour un écran Swing, il peut s'agir d'éléments tels que des zones de texte, des tableaux ou même d'autres composants personnalisés.
Supposons que vous souhaitiez ajouter une zone de texte au panneau de gauche et un tableau au panneau de droite. Voici comment modifier le code précédent :
importer javax.swing.* ; importer java.awt.* ; importer javax.swing.table.DefaultTableModel ; public class SplitPaneWithComponents { public static void main(String[] args) { JFrame frame = new JFrame("Split Pane with Components"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600); JTextArea textArea = new JTextArea("Ceci est une zone de texte."); JScrollPane textScrollPane = new JScrollPane(textArea); String[] columnNames = {"Nom", "Âge"} ; Objet[][] data = { {"Jean", 25}, {"Jane", 30} }; Modèle DefaultTableModel = new DefaultTableModel (données, columnNames); table JTable = new JTable (modèle); JScrollPane tableScrollPane = new JScrollPane(table); JSplitPane splitPane = nouveau JSplitPane(JSplitPane.HORIZONTAL_SPLIT, textScrollPane, tableScrollPane); frame.add(splitPane); frame.setVisible(true); } }
Dans ce code mis à jour, nous avons ajouté unJTextZonesur le côté gauche et unJTablevers le côté droit. Les deux sont enveloppés dansJScrollPanepour permettre le défilement si le contenu est trop volumineux.
Étape 3 : personnalisation du volet divisé
Vous pouvez personnaliser le volet divisé de plusieurs manières. Par exemple, vous pouvez définir l'emplacement initial du séparateur, qui détermine l'emplacement initial de la séparation entre les deux sous-conteneurs. Vous pouvez également modifier l’apparence du séparateur.
Voici comment définir l'emplacement initial du séparateur :


splitPane.setDividerLocation(200);
Cela définira la position initiale du séparateur à 200 pixels de la gauche (dans un volet divisé horizontalement).
Pour changer l'apparence du séparateur, vous pouvez utiliser lesetDividerSizeméthode:
splitPane.setDividerSize(10);
Cela donne au diviseur une largeur de 10 pixels.
Étape 4 : Intégration du volet divisé dans votre écran Swing
Si vous êtes un fournisseur de Swing Screen, il y a de fortes chances que vous disposiez déjà d'une application Swing Screen. L'intégration du volet divisé dans cette application peut nécessiter un peu plus de travail. Vous devrez vous assurer que le volet divisé s'adapte bien à la mise en page existante et que tous les composants interagissent correctement.
Une chose à garder à l’esprit est que vous devrez peut-être gérer des événements liés au volet divisé. Par exemple, lorsque l'utilisateur redimensionne le séparateur, vous souhaiterez peut-être mettre à jour d'autres parties de l'écran en conséquence. Vous pouvez le faire en ajoutant unPropertyChangeListenerau volet divisé :
splitPane.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY, e -> { // Ajoutez du code ici pour gérer le changement d'emplacement du diviseur System.out.println("Emplacement du diviseur modifié!"); });
Équipement connexe pour votre projet
Si vous travaillez sur un projet impliquant la transformation du papier ou des industries connexes, certains des équipements que nous pouvons vous recommander pourraient vous intéresser. Consultez notreMachine à déchirer le papier,Digesteur à tambour rotatif, etLave-copeaux. Ce sont d'excellents outils pour diverses tâches liées au papier.
Conclusion
L'ajout d'un volet divisé à un écran Swing peut considérablement améliorer ses fonctionnalités et son expérience utilisateur. En suivant ces étapes, vous pouvez créer un volet divisé qui répond à vos besoins spécifiques. Que vous soyez un développeur cherchant à améliorer vos applications Swing ou un propriétaire d'entreprise ayant besoin d'un écran Swing personnalisé, nous sommes là pour vous aider.
Si vous êtes intéressé par l'achat d'un écran Swing ou si vous avez des questions sur l'ajout d'un volet divisé, n'hésitez pas à nous contacter. Nous serions ravis de discuter et de discuter de la manière dont nous pouvons répondre à vos exigences.
Références
- "Java efficace" par Joshua Bloch
- "Java Swing : guide du débutant" par Herbert Schildt
