我正在编写模式生成器,这里是主要代码(模式和步骤的字符由JTextFields提供):
String chstrin=ch.getText();
char c=chstrin.charAt(0);
int n = Integer.parseInt(st.getText()) ;
for(int i = 0; i <= n; ++i)
{
for(int k = 0; k < i*2-1; ++k)
System.out.print(c);
System.out.println();
}
如何通过名称“res”将输出重定向到JTextArea? 我在StackOverflow和网络上都读过关于System.setOut和PipedOutput但是无法理解单行代码。 谁能帮我吗?请使用JTextArea res作为输出。
谢谢!
答案 0 :(得分:1)
如果JTextArea的名字是res;然后:
for(int i = 0; i <= n; ++i)
{
for(int k = 0; k < i*2-1; ++k)
res.setText(res.getText()+c);
res.setText(res.getText()+"\n");
}
答案 1 :(得分:1)
如果您要做的只是将文本发送到JTextArea
而不是控制台,只需执行此类操作
JTextArea res = new JTextArea();
....
String chstrin=ch.getText();
char c=chstrin.charAt(0);
int n = Integer.parseInt(st.getText()) ;
for(int i = 0; i <= n; ++i)
{
for(int k = 0; k < i*2-1; ++k) {
res.append(String.valueOf(c));
}
res.append("\n");
}
append
方法允许您向JTextArea
添加连续文字。如果您使用setText()
。它将重写文本区域。
还要考虑换行。您可能想要包装文本行。为此,请执行此操作
JTextArea res = new JTextArea();
res.setLineWrap(true);
res.setWrapStyleWord(true);