Maison >Java >javaDidacticiel >Comment rediriger la sortie de l'invite de commande vers une zone de texte Java ?

Comment rediriger la sortie de l'invite de commande vers une zone de texte Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-03 01:57:29647parcourir

How Can You Redirect Command Prompt Output to a Java TextArea?

Redirection de la sortie de l'invite de commande vers une TextArea

Dans les programmes Java, le contenu affiché dans l'invite de commande peut être imprimé sur un objet TextArea. Cette fonctionnalité est utile pour créer des interfaces utilisateur avec des affichages de sortie personnalisés.

Solution :

Pour rediriger la sortie de l'invite de commande vers une TextArea, la méthode System.setOut() peut être utilisé pour spécifier un OutputStream personnalisé qui capture la sortie et l'affiche dans TextArea.

Implémentation :

L'exemple de code suivant illustre comment rediriger la sortie de l'invite de commande vers a TextArea :

<code class="java">import javax.swing.*;
import java.awt.*;
import java.io.*;

public class GUIPanel extends JFrame {
    private JTextArea textArea1;
    private PrintStream aPrintStream;
    
    public GUIPanel() {
        // Create a TextArea object to display the output
        textArea1 = new JTextArea();
        textArea1.setPreferredSize(new Dimension(432, 343));
        
        // Create a custom PrintStream to capture command prompt output
        aPrintStream = new PrintStream(new FilterOutputStream(new ByteArrayOutputStream()) {
            @Override
            public void write(byte[] b, int off, int len) {
                // Convert the byte array to a string and append it to the TextArea
                String output = new String(b, off, len);
                textArea1.append(output);
            }
        });
        
        // Redirect the System.out output to the custom PrintStream
        System.setOut(aPrintStream);
    }
    
    public static void main(String[] args) {
        // Create an instance of the GUIPanel class
        GUIPanel panel = new GUIPanel();
        
        // Set the panel visible
        panel.setVisible(true);
        
        // Print some text to the command prompt
        System.out.println("Hello, world!");
    }
}</code>

Explication :

  1. Créez un objet JTextArea pour afficher la sortie.
  2. Créez un PrintStream personnalisé qui capture la sortie de l'invite de commande et l'ajoute à TextArea.
  3. Redirigez la sortie System.out vers le PrintStream personnalisé à l'aide de System.setOut().
  4. Après ces étapes, tout contenu imprimé sur System. out sera affiché dans TextArea.

En mettant en œuvre cette approche, vous pouvez contrôler efficacement la sortie de votre programme Java et l'afficher dans une interface TextArea conviviale.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn