2016-03-22 7 views
1

'da JSON (asText) çıktısını görüntülemeye çalışıyorum Bilgileri JSON (astext) olarak görüntüleyen bir programım var. netbeans çıktı gibi iyi görünüyor Konsol bu bir:JTextAreaInterface

------------------------ 
| res1     | 
======================== 
| "Houben,-Henriette" | 
| "Maiterth,-Ralf"  | 
| "Müller,-Heiko"  | 
| "Herr,-Hansjörg"  | 
| "Schneider,-Georg" | 
------------------------ 

Ama JTextAreaInterface sonuç şuna benzer:

---------------- 
| res1   | 
================== 
| "Houben,-Henriette" | 
| "Maiterth,-Ralf" | 
| "Müller,-Heiko"  | 
| "Herr,-Hansjörg" | 
| "Schneider,-Georg | 

------------------------ 

Ve ben bir iki ya da üç sütun neden olduğunda sorun kötüdür . Bunu düzeltmenin bir yolu var mı? Bu benim JTextAreaInterface şudur: Metin alanı için, Courier gibi boşluklu font, ayarlamak için JTextArea.setFont() kullanmak gerekir

public class JTextAreaInterface extends OutputStream { 
    public static JTextArea textArea = new JTextArea(25, 80); 
    private final JTextArea destination; 

    public JTextAreaInterface(JTextArea destination) { 
     if (destination == null) 
      throw new IllegalArgumentException("Destination is null"); 
     this.destination = destination; 
    } 

    @Override 
    public void write(byte[] buffer, int offset, int length) throws IOException { 
     final String text = new String(buffer, offset, length); 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       destination.append(text); 
      } 
     }); 
    } 

    @Override 
    public void write(int b) throws IOException { 
     write(new byte[] { (byte) b }, 0, 1); 
    } 

    public static void main(String[] args) throws Exception { 
     textArea.setEditable(false); 
     JFrame frame = new JFrame("Processing"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     Container contentPane = frame.getContentPane(); 
     contentPane.setLayout(new BorderLayout()); 
     contentPane.add(new JScrollPane(textArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
       JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED), BorderLayout.CENTER); 
     frame.pack(); 
     frame.setVisible(true); 
     JTextAreaInterface out = new JTextAreaInterface(textArea); 
     System.setOut(new PrintStream(out)); 
     MyProgram test = new MyProgram(); 
     test.Processing(); 

      System.setOut(new PrintStream(out, true)); 
      System.setErr(new PrintStream(out, true)); 
    } 
} 

cevap