2014-09-26 101 views
0
public static void main(String[] args) throws IOException { 
    //cevir("ornek3.txt"); 
    JFrame frame=new JFrame("Print"); 
    JPanel input=new JPanel(); 
    JPanel output=new JPanel(); output.setBackground(Color.black); 
    final JTextArea ita = new JTextArea(30, 40); 
    JScrollPane ijp = new JScrollPane(ita); 
    JTextArea ota = new JTextArea(30, 40); 
    JScrollPane ojp = new JScrollPane(ota); 
    JButton buton=new JButton("Print"); 

    frame.setLayout(new FlowLayout()); 
    buton.setSize(50, 20); 
    input.setBounds(0,0,500, 500); 
    output.setBounds(500, 0, 500, 450); 
    frame.setBounds(100, 50, 1000, 500); 


    input.add(ijp, BorderLayout.CENTER); 
    output.add(ojp, BorderLayout.EAST); 
    input.add(buton, BorderLayout.SOUTH); 
    frame.add(input); 
    frame.add(output); 

    buton.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 

      for(String line: ita.getText().split("\\n")); 
       System.out.println(line); 


     } 
    }); 


    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setVisible(true); 
} 

這是我的代碼,我希望獲得我在程序運行時寫入的文本並將其打印到控制檯。是否可以使用JtextArea。即使我寫了一些東西到textarea,當我點擊按鈕到控制檯時,此代碼打印出null。從JtextArea獲取用戶輸入

+0

您的代碼不編譯。爲什麼你把';'放在'for(String line:ita.getText()。split(「\\ n」));'?有沒有可能你有一個名爲'line'的靜態變量被打印而不是'JTextArea'的實際內容? – ortis 2014-09-26 14:54:45

+2

除了@ortis提到的錯誤之外,你的代碼工作正常。請注意,我會避免使用空佈局和setbounds,贊成使用佈局管理器,並會避免將所有內容放在靜態域中,但稍後可以修復。 – 2014-09-26 14:57:24

+0

非常感謝併爲這樣一個簡單的問題感到抱歉。 @HovercraftFullOfEels我可以用什麼來代替setbounds?我是Java新手,我認爲我的代碼很薄弱。 – 2014-09-26 15:11:33

回答

1

您已使用JtextArea#append方法。方法內使用

 public void actionPerformed(ActionEvent e) { 

      for(String line: ita.getText().split("\\n")) 
       ota.append(line); 


     } 

而且變量的內部類應該是最後的,所以要ota作爲最終

final JTextArea ota = new JTextArea(30, 40);