你好 是否可以在JPanel中绘制java控制台返回的内容? 你有一个教程要遵循? 谢谢 swJava控制台JPanel
回答
首先从控制台读取。要做到这一点使用System.setOut()。使用ByteOutputStream,写在那里并从他们的阅读。你会得到你的程序打印到系统中。现在使用TextArea或JScrollPane来呈现文本。
我不记得在那里我发现这一点,但我已经输出的输出流在一个JPanel举行一个JTextArea使用I类叫TextAreaOutputStream:
import java.io.IOException;
import java.io.OutputStream;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
public class TextAreaOutputStream extends OutputStream {
private final JTextArea textArea;
private final StringBuilder sb = new StringBuilder();
private String title;
public TextAreaOutputStream(final JTextArea textArea, String title) {
this.textArea = textArea;
this.title = title;
sb.append(title + "> ");
}
@Override
public void flush() {
}
@Override
public void close() {
}
@Override
public void write(int b) throws IOException {
if (b == '\r')
return;
if (b == '\n') {
final String text = sb.toString() + "\n";
SwingUtilities.invokeLater(new Runnable() {
public void run() {
textArea.append(text);
}
});
sb.setLength(0);
sb.append(title).append("> ");
}
sb.append((char) b);
}
}
我然后再直接标准输出正如Alex在上面的回答中提到的那样,流向这个对象。
'sb.append(title).append(“>”);'可能会更有效率。 – 2012-05-29 21:43:04
@DavidConrad:的确如此,它会避免一个String concat。谢谢,并回答编辑。 – 2012-05-29 21:49:04
创建FilterOutputStream的子类以将所有内容都回显到JTextArea。
class Echo extends FilterOutputStream {
private final JTextArea text;
public Echo(OutputStream out, JTextArea text) {
super(out);
if (text == null) throw new IllegalArgumentException("null text");
this.text = text;
}
@Override
public void write(int b) throws IOException {
super.write(b);
text.append(Character.toString((char) b));
// scroll to end?
}
// overwrite the other write methods for better performance
}
和替换的标准输出:
JTextArea text = new JTextArea();
System.setOut(new PrintStream(new Echo(System.out, text)));
的Message Console提供您可能感兴趣的一些更多的选择。
- 1. 在JPanel中创建Java命令控制台
- 2. Java GUI控制台
- 3. Java控制台API
- 4. java控制台输入
- 5. 从控制台运行java
- 6. Java控制台程序
- 7. 清除Eclipse控制台java
- 8. Java控制台到GUI
- 9. java控制台菜单
- 10. 消息控制台Java
- 11. Java控制台光标movemenet
- 12. Java/swing:控制台组件?
- 13. cygwin的java控制台
- 14. Java - 执行控制台
- 15. Java控制台输出 - 文件和控制台BOTH
- 16. 如何将打印到控制台的类添加到JPanel
- 17. Java绘制到JPanel(调试)
- 18. Eclipse控制台VS Netbeans的控制台
- 19. Rails3 irb控制台vs rails控制台?
- 20. Firebase控制台到Google控制台
- 21. WPF的控制台控制
- 22. NetBeans不会打印到控制台JAVA
- 23. Java控制台中的退格?
- 24. 2列中的Java控制台日历
- 25. 使用java更新控制台窗口
- 26. 如何显示java控制台
- 27. Java Eclipse不会打印到控制台
- 28. Java控制台中的TicTacToe 5x5
- 29. 如何检查Java控制台日志?
- 30. Java 8 Nashorn JJS - javascript控制台
您可能希望在您的问题标签中添加“Swing”以吸引论坛Swing专家。 :) – 2010-12-12 16:43:38