作者archerlin (archer)
看板java
标题Re: [问题] 请问println可以加颜色吗??
时间Fri Oct 19 02:38:39 2007
※ 引述《Sanbeishuu (三杯鼠)》之铭言:
: 请问 如果要用system.out.println( "xxxx" );
: 可以打出色彩吗?
: 要在Windows的cmd下excute的
: 感谢XD
还是不要光推文好了(推文字数限制好累 XD)
我在推文说因为Java的console设计理念就是要跨平台跨语系的,
所以他在console的支援程度就很弱,你问的字型颜色应该没有直接支援...吧?
所以你不如使用C/C++、VC++、C#这些语言,查他们的MSDN就可发现相关的API。
或者自己撰写加工也行,例如:
http://www.codeguru.com/Cpp/W-D/console/article.php/c3959
可利用GetStdHandle()和SetConsoleTextAttribute()来设置字体/背景颜色。
但是,这好像是Java版?话题还是要绕回来Java的solution才不会离题 XD
所以当你问到这问题时,我头一个想到的是靠JNI来做...
先用C/C++去Build一个DLL,在Java端透过JNI去call他来使用...
类似这样...
http://www.rgagnon.com/javadetails/java-0469.html
(不知道JDK 6有没有支援了,话说JDK 6中新增了java.io.Console类别...)
不然的话,若你是想单纯的控制"整个"cmd.exe的字体颜色和背景颜色的话,
在Windows的命令提示列直接有个指令可以办到,
那就是 COLOR,可以设定预设主控台的前景及背景色彩。
详情请自己打 "color /h"查,我就不多说了...
例: "COLOR fc" 产生淡红色於亮白色上
用 Runtime.getRuntime().exec("COLOR fc"); 应该也能动了。
最後,我提供我在SourceForge有看过相关的project(共三个)
供你参考使用(先声明我是都没用过啦,没这种需求 XD)
1.
Charva
http://sourceforge.net/projects/charva
他是一套适用於传统VT100/VT220 ASCII terminal下的framework,
看起来挺powerful的!(你应该不需要如此多功能的东西)
官方网页:
http://www.pitman.co.za/projects/charva/
2.
Java Curses Library
http://sourceforge.net/projects/javacurses/
3.
Colorful Java Console
http://sourceforge.net/projects/jcons
看他的ScreenShot还蛮Colorful的 XD (这个可能最符合你所需吧)
http://sourceforge.net/project/screenshots.php?group_id=162867
最後,回归原本,我还是不知道为何你 println()有需要彩色的需求啦,
难道是单纯因为炫吗?Java应该没有内建这个功能所以势必要套用上述的方案之一,
以上的survey和要做的功课就是你炫的代价罗 XD
不然的话,既然是Java语言,Font想要设定颜色字型等等之类的,
使用在AWT/Swing才是正途阿...随随便便一个JTextField每个字要啥颜色任你写,
JTextComponent底下的几名大将JTextField、JTextArea、JTextPane等等任你用,
Java本身提供这麽强大的2D GUI功能不用不是可惜了 XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.31.160.246
1F:推 wctang:我以前也曾想在eclipse的console中显示颜色,原因是想让 10/19 10:44
2F:→ wctang:log中的error出现时更明显,不过也只是想想而已,发现没那 10/19 10:45
3F:→ wctang:麽容易後就放弃了 10/19 10:46
4F:推 qrtt1:用 System.err.println 就变红了 10/19 22:56