Partage
  • Partager sur Facebook
  • Partager sur Twitter

Rediriger INPUT et OUTPUT de la Console

Eclipse 3.7 -- WindowBuilder -- Java

    24 mai 2012 à 18:25:00



    Rediriger le Input


    Alors sans the WindowBuilder mon program marche parfaitement avec la console, comment puis-je le mettre pour qu'il marche avec un textpanel?
    (Surtout le input qui manque pour que ça marche)


    Rediriger le Output (le 'mien' marche)


    import java.io.*;
    import javax.swing.*;
    
    public class Console implements Runnable
    {
        JTextArea displayPane;
        BufferedReader reader;
    
        private Console(JTextArea displayPane, PipedOutputStream pos)
        {
            this.displayPane = displayPane;
    
            try
            {
                PipedInputStream pis = new PipedInputStream( pos );
                reader = new BufferedReader( new InputStreamReader(pis) );
            }
            catch(IOException e) {}
        }
    
        public void run()
        {
            String line = null;
    
            try
            {
                while ((line = reader.readLine()) != null)
                {
    //              displayPane.replaceSelection( line + "\n" );
                    displayPane.append( line + "\n" );
                    displayPane.setCaretPosition( displayPane.getDocument().getLength() );
                }
    
                System.err.println("im here");
            }
            catch (IOException ioe)
            {
                JOptionPane.showMessageDialog(null,
                    "Error redirecting output : "+ioe.getMessage());
            }
        }
    
        public static void redirectOutput(JTextArea displayPane)
        {
            Console.redirectOut(displayPane);
            Console.redirectErr(displayPane);
        }
    
        public static void redirectOut(JTextArea displayPane)
        {
            PipedOutputStream pos = new PipedOutputStream();
            System.setOut( new PrintStream(pos, true) );
    
            Console console = new Console(displayPane, pos);
            new Thread(console).start();
        }
    
        public static void redirectErr(JTextArea displayPane)
        {
            PipedOutputStream pos = new PipedOutputStream();
            System.setErr( new PrintStream(pos, true) );
    
            Console console = new Console(displayPane, pos);
            new Thread(console).start();
        }
    
        public static void main(String[] args) throws IOException
        {
            JTextArea textArea = new JTextArea();
            JScrollPane scrollPane = new JScrollPane( textArea );
    
            JFrame frame = new JFrame("Redirect Output");
            frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
            frame.getContentPane().add( scrollPane );
            frame.setSize(200, 100);
            frame.setVisible(true);
    
            Console.redirectOutput( textArea );
            final int i = 0;
    
            Game game = new Game(); //j'ouvre le jeu ou je print des lignes et que j'en input (input marche pas)
            game.Start(); //
        }
    }
    
    • Partager sur Facebook
    • Partager sur Twitter

    Rediriger INPUT et OUTPUT de la Console

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown