作者sunbysea (sunbysea)
看板java
标题Re: [问题] 请问如何做出类似console介面的图形模式
时间Fri Feb 17 17:28:09 2006
感谢版主和qrtt1的回答
我会去看看java.awt.Canvas相关的说明
板主的程式码我修改几个小地方,如下
import org.eclipse.swt.widgets.Text;
private void squeeze2(){
int lineCount = textarea.getLineCount();
if(lineCount > MAX_LINE_LIMIT){
String textData = textarea.getText();
int newBeginIndex = textData.indexOf("\n") + 1;
textarea.setText(textData.substring(newBeginIndex));
}
}
谢谢
※ 引述《PsMonkey (痞子军团团长)》之铭言:
: ※ 引述《sunbysea (sunbysea)》之铭言:
: : 我做了一个图形化的介面,里面有一个讯息提示框
: : 用的是org.eclipse.swt.widgets.Text类别
: : 每次有新的提示讯息就append到文字框里面
: : 但问题来了,万一讯息很多,一直append也很耗记忆体
: : 不知道哪一个类别可以做到类似一般console介面那样
: : 当讯息超过特定行数後,旧的讯息会往上移动消失掉
: : 麻烦了解的人介绍一下或是指导一下相关的方法
: 我是不知道有没有这种 class,不过我觉得有的可能性超级低
: 不要想那麽多嘛...
: 有时候自己动手作也是很好的阿
: 其实很简单的... 你要不要自己重新想一下?
: 提示:String.split("\n")
: 哇咧~ 你还往下翻... 再想一下嘛...
: (以下用 JTextArea 作例子,没有实际测试过... [逃])
: private void squeeze(){
: String[] lineData = textarea.getText().split("\n");
: if(lineData.length > MAX_LINE_LIMIT){
: textarea.setText("");
: for(int i=0; i<MAX_LINE_LIMIT; i++){
: textarea.append(lineData[lineData.length-MAX_LINE_LIMIT+i];
: }
: }
: }
: 看你是要用一个 thread 去跑
: 还是每次增加资料的时候就顺便 call 这个 method
: ====
: code paint color by
: http://pt2.twbbs.org/product/PsCodeForBBS.htm \囧/
--
来PTT的法 轮 功版看看吧
(C)lass【 分组讨论区 】=> (6) 活动中心 => (4) C-Mind => 8 FaLunDaFa
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.127.117.157
※ 编辑: sunbysea 来自: 140.127.117.157 (02/17 17:29)