由买买提看人间百态

topics

全部话题 - 话题: jtextarea
1 (共1页)
p*a
发帖数: 592
1
来自主题: Java版 - Re: JTextArea的内容不滚动
经过痛苦的实践与摸索,偶终于找到了一个土办法让它滚动
到最后一行.
首先记录下空白JTextArea的viewport size
然后append一行文字进去,再记录新的viewport size
然后算出这两个size的高度差
然后取得JTextArea的vertical scrollbar
设其value为其maximum value+新添行数x高度差
code 如下:
// get line height first
JTextArea area=MyFrame.getTextArea();
Dimension d1=area.getPreferredScrollableViewportSize();
area.append(message); //one line message
Dimension d2=area.getPreferredScrollableViewportSize();
int lineHeight=(int)(d2.getHeight()-d1.getHeight());

......
// append new te
b***i
发帖数: 3043
2
JTextArea area=new JTextArea();
tabbedPane tP=n......
tP.add(area);
pack();
然后,图形窗口出来了,area看到了,能输入了,怎么知道这个文本框不scroll到底多
少行,多少列呢?
用getRows, 得到0
b***i
发帖数: 3043
3
来自主题: Java版 - JTextArea行间距如何设定?
多谢啊,还是这个问题。同样的字符在notepad下可以上下联一起,但是word里就不能
。估计行间距java不能调。
我决定使用图形了。我把图形作为背景,放在jTextArea里面。但是遇到了闪烁问题。
MyTextArea extends JTextArea
paint(Graphics g)
{
g.drawImage...
super.paint(g);
g.finalize();
}
然后在主程序每次作图修改image后
theTextArea.repaint(g);
结果,每次都看到这个区域白光闪过。倒是更新了,但是我不希望出现这个白光闪烁。
怎么去掉呢?目的就是在text内容没有变,但是背景image变了后,能够更新图像,但
是不想有闪烁。
b***i
发帖数: 3043
4
多谢,正准备用了,
我把scrollbar显示出来后,就实现了我的要求,用户输入的文字可以上卷。
但是,我的JTextArea有背景图。我的目的是文字悬浮于图形之上。比如,文字变化,
图形不变
现在,每次输入字符如果超过最大行数,屏幕自动上滚,文字满足了要求,我把拖动杆
变得很小,看不见。但是,文字上滚时,图形也上滚了,所以准备用
scrollRectToVisible,还有那一套获得现在显示窗口的东西,在paint里面画到新的位
置。
我不想用listener来实现真正的具有屏幕文字缓冲区的textArea,是因为我想显示汉字
,而我选的汉字体的宽度是英文的两倍,会出现我移动光标时有的时候是移动一个字符
,有的时候是两个,再实现delete, back space,我要疯了。现在将就用jTextArea,很
小的问题,就是屏幕上卷后最上一行还是在的,如果用鼠标滚轮上卷,还是能看到。不
过看到就看到吧。
b***i
发帖数: 3043
5
来自主题: Java版 - JTextArea行间距如何设定?
我就是想实现一个DOS界面,或者,Apple II界面那样的console
如果我假定是Windows,设定什么字体可以这样?在Windows Notpad里SimHei就是这样的
效果,
但是我在java JTextArea却不是。
实在不行,就只好画图了
c*****t
发帖数: 1879
6
来自主题: Java版 - JTextArea行间距如何设定?
1. flashing is because of clearing the background to white.
2. For JComponents (i.e. JTextArea), you really should override
paintComponent
function instead of paint (which is for heavyweight components).
3. If you were to override paint function, do not call super.paint.
4. Turn on double buffering.
5. Should not call g.finalize
b***i
发帖数: 3043
7
我不希望出现这个scrollbar, 但是希望我在JTextArea里输入的时候,能够永远显示到
最后一行,如何做到?
多谢
b***i
发帖数: 3043
8
先说问题:主程序通知窗口显示"\n]",窗口得到字符串,要判断换行字符
String tobeappend="";
for(int i=0;i {
\ String temp=str.substring(i, i+1);
\ int tmp=(int)temp.toCharArray()[0];
\ if (temp=="\n")
\ newLine();
\ else
\ {
我跟踪到temp = "\n", 但是却执行了else部分。所以,我只好后来加上了 || tmp ==
10来判定回车,就可以了。不知道为什么有的时候\n]不能执行newLine();
现在的结果:在两位高手的帮助下,console终于做出来了,象当年的apple 了。
进入程序后,出现]_
等待用户输入指令。一共40行,80列。通过JTextArea(40, 80) 指定了窗口显示的区域
。当然,我指定了固定大小的字体Serif。
做法是,我在窗口类中设了缓冲区,40行。然后,指定setRows(43)。这样做是为了到
最后一行的
b****l
发帖数: 132
9
请教Java大拿
我的JTextArea是放进一个JScrollPane里 ,数据一行一行的显示。每一行数据是四个
string。第一个string是ID(人名),后三个是这个ID的相关信息(身高,体重,性别)
现在有一个问题,当你点击某一行text,如何生成一个popup window,显示更多相关信
息(电话号码,地址等等。
在线等,谢谢
m******e
发帖数: 7
10
Hello, I found the solution under this link:
http://forum.java.sun.com/thread.jsp?forum=57&thread=243443
The content:
Re: JTextArea: Delete, Insert, Auto-Replace
Author: camickr
In Reply To: JTextArea: Delete, Insert, Auto-Replace
Here is how I support insert/overtype in a JTextArea. The code can also be
downloaded from:
http://www.discoverteenergy.com/files/OvertypeTextArea.java
import java.awt.*;import java.awt.event.*;import javax.swing.*;import
javax.swing.text.*;import javax.swing.event.*;i
b***i
发帖数: 3043
11
来自主题: Java版 - GUI问题
目的:
左边一列有三个componnet, 从上边开始分别是
1. JEditorPane, 指定宽度和高度
2. JTextArea, 宽度一样,高度不定
3. JPanel, 由四个button组成,要求每个button能看到全部的文字即可,分别是Run,
Stop等简单的文字,所以我希望button应该比较矮。可以一行放4个,也可以2行。
右边一个JTextArea,指定了80列40行。所以,左边第二个JTextArea的高度其实由其他
控件决定了。应该用什么样的layout呢?
b***i
发帖数: 3043
12
来自主题: Java版 - JTextAre如何预定行列数目
用JTextArea ta=JTextArea(....)
pack();
可以。
但是,两行语句之间如果设定字体,就 不对了,行数不对,有的会在卷屏幕的时候最
上方出现分数行,露出一半字。这个问题如何解决?
h*****0
发帖数: 4889
13
来自主题: Java版 - GUI问题
最简单的:
总体一个BorderLayout,右边的JTextArea放到East,一个panel放到center
中间的panel再用BorderLayout,north是JEditorPanel,center是JTextArea,south是
JPanel
这个Jpanel再用flowlayout,放4个button,这样可能是一行,也可能是两行(有可能
第一行出现3个,第二行出现1个)。这里如果不满意,可以用GridLayout强行指定成2*
2

Run,
b***i
发帖数: 3043
14
来自主题: Java版 - JtextPane中英等宽字体问题
以前JTextArea里面,中文正好是英语两倍,可能用的是NSimSun,或者Courier New
现在JTextPane里面,如果用Courier New,英文不管是不是粗体都是等宽,中文变成方块
如果用NSimSun,则不是粗体的中文是英文两倍,英文等宽,但是我想把keyword变粗体
,象eclipse那样,结果,粗体的英文不是中文一半。为什么Eclipse可以,我就不行?
我估计和JtextPane用了swing有关系,以前JTextArea挺好的,但是没有颜色而已
v***o
发帖数: 5
15
来自主题: Java版 - Re: JTextArea的内容不滚动
I had a trick long time ago, maybe not working now.
try setText("\r") first, then append. (or maybe setText("\r\n"))
scrolling the text shouldn't have been such a pain...
m*****e
发帖数: 126
16

Swing components come with jdk1.2 and later version. Currently,
most of the browsers only have embeded 1.1 version JVMs. For
example, my Netscape 4.7 has a version 1.1.5 virtual machine.
So it simply does not know what JTextArea is.
To view those 1.2 applets, you need to download java plugin,
which is a virtual machine to replace the one comes with your
browser. You can not assume that all you users know how to
install the plugin. So you'd better use awt components only
in your applets.
b*********a
发帖数: 28
17
来自主题: Java版 - 如何输出TXT文件?
我用 RandomAccessFile
想输出字符串到TEXT文件
无奈换行符总是不能正确显示
即使用writeUTF写用readUTF读,
如果写了两行
读出来时候 换行符不见了
两行并在一起了
直接放到JTextarea
就不分行了
哪位高手知道怎么回事情啊?
多谢!
b*******e
发帖数: 2
18
来自主题: Java版 - Re: help with JTextArea
you put new lines on top? it's not "append".. :-)
what about try to find some functions from JScrollPane? check out the api
h******b
发帖数: 312
19
I want to wrap text in an editor area at a specific position, I have a
configure dialog to ask user specify line wrap at, say, 60 characters or 90
characters. Then I want the text to be displayed like that.
I can use JTextArea/JTextPane/JEditorPane, but no luck. setColumn() method
won't do it because it actually changed the size of the component, which I
don't want. I also tried to use styleddocument and override insert() method,
but in that way I have to insert new line characters which is not
c****u
发帖数: 3277
20
来自主题: Java版 - simple swing question
I tried to draw a graph on a jpanel, then put jtextareas and
jlabels onto that jpanel, the textareas and jlabels form an area, which
always cover my grphics completely and mess it up. Any solution?
c****u
发帖数: 3277
21
来自主题: Java版 - simple swing question
ft. when I changed jtextarea to textarea, it works fine.
w******n
发帖数: 692
22
You can try to add the statement Component.repaint.
But if your JScrollBar is associated with some panel like JTextArea, you'd
better consider their methods to do the job. Overall, JScrollbar is dependent
with those Panels.
S****N
发帖数: 193
23
来自主题: Java版 - GUI THANKS
TEXTBASED USER INTERFACE USE
BufferedReader br = new BufferedReader(new InputStreamReader(System.in), 1);
TO SUSPEND THE PROGRAM RUNNING AND WAITING FOR THE USER'S INPUT
IN GUI USERINTERFACE,
IF I AM GOING TO PRINT A FEW LINES USER PROMPT IN A JTEXTAREA AND SUSPEND THE
PROGRAM, WAITING THE USER INPUT SOMETHING IN ANOTHER JTEXTFIELD. ANYONE HAVE
IDEA TO MAKE IT COME TRUE..ACTUALLY I CANT FIGURE IT OUT FOR A FEW DAYS
s*******y
发帖数: 558
24
譬如说在Firefox上面加一个自定义的button, 当click button后, URL 栏里面的地址
可以传递给另外一个stand-alone的java程序, 在其GUI界面上(e.g. jTextArea)显示
出Firefox当前URL的值。
请问哪位大侠知道J2SE里面怎么实现么? 谢谢了
谢谢
b***i
发帖数: 3043
25
来自主题: Java版 - 如何在TextArea里面画位图
自定义的TextArea的子类,
我在paint里面,
super(g);
再画直线,可以看到。
如果定义一个位图,在初始化时或者呼叫的时候,在位图里面画图,
然后再paint里面,super后面g.drawImage(image, 0,0,this);
看不到。
高手们有何指教?我想找setOpaque,但是TextArea没有。这个TextArea和JTextArea有
什么大的区别? 多谢!
g*****g
发帖数: 34805
26
来自主题: Java版 - 如何在TextArea里面画位图
Do not use TextArea, use JTextArea and paintComponent.
b***i
发帖数: 3043
27
来自主题: Java版 - 如何在TextArea里面画位图
多谢两位高手指导。
我正想贴代码,看到初始化的时候
private void init(){
image[0]=new BufferedImage(this.WIDTH,this.HEIGHT,
BufferedImage.TYPE_INT_RGB);
我把this.WIDTH改成100, 把HEIGHT改成100,就出现了图块
看来,初始化的时候,还不知道此控件的大小。此时,this.WIDTH=0, this.HEIGHT=0
我将来会把它改成JTextArea, 不过现在能画了,就是不知道该什么时候才能知道控件
的大小
那么,我什么时候可以呼叫init呢
h*****0
发帖数: 4889
28
就用一个JTextArea,然后每次发生任何字符输入都处理一下事件;每次发生光标位置
变化都处理一下事件(比如不准到上一行)。
h*****0
发帖数: 4889
29
当然不能用keytyped,要用字符。不记得JTextArea行不行了,要是不行你就用
JTextPane或者JEditorPane吧,监视编辑动作。
F****n
发帖数: 3271
30
No you cannot tell.
h*****0
发帖数: 4889
31
估计只能getText再自己算了……
b***i
发帖数: 3043
32
来自主题: Java版 - JTextArea行间距如何设定?
我想使用制表符,比如|, 等,
但是上下行之间有空白。在DOS当年是可以两个||上下连在一起的。
这个如何实现?
h*****0
发帖数: 4889
33
来自主题: Java版 - JTextArea行间距如何设定?
这个不好实现。事实上不同系统或不同字体下|的长度就是不一样的。
你真有制表的需求,为啥不用JTable?
h*****0
发帖数: 4889
34
来自主题: Java版 - JTextArea行间距如何设定?
那你得去找字符“|”
注意,是有这么个专门的制表符,不是键盘上的那个符号。BBS Telnet模式下就常用。
g*****g
发帖数: 34805
35
scrollRectToVisible
h*****0
发帖数: 4889
36
什么叫“永远显示到最后一行”?是说不让编辑最后一页之前的东西?
b***i
发帖数: 3043
37
比如,我的文本窗口是80 x 40行,不想显示拖动杆。
程序显示了39行,在第40行等待用户输入,现在我输入了80个字符,因为行wrap, 继续
输入的会到下一行。我希望这个文本窗口自动显示第2行到第41行,光标应该移动到第
41行,然后我可以看到继续输入的字符。现在的情况是,当我要输入第41行的时候,光
标所在行看不见了。应该在每个字符输入后,文本窗口得到更新的时候,做一个事情,
就是把最后的40行显示出来,而不是最开始的40行。
有什么办法嘛?
h*****0
发帖数: 4889
38
也就是说,你要的是永远显示“光标所在行”?
具体方法我不清楚。用光标事件监听是一个办法。你查查doc,可能还有更方便的方法。
b***i
发帖数: 3043
39
我觉得最大的难点是我不想显示拖动杆。如果有拖动杆很好办,setCaretPosition就可
以。
但是,能用拖动杆但是不显示吗?
我最终的目的就是想实现想dos一样的古代计算机界面,有屏幕卷动,但是不再显示消
失的行。

法。
b***i
发帖数: 3043
40
想了一个办法,把scrollbar显示出来,但是让它很细,比如只有1,不就行了吗?
待会儿试一下

法。
g*****g
发帖数: 34805
41
Did you check scrollRectToVisible function I mention?
h*****0
发帖数: 4889
42
其实,现在的cmd也是有滚动条的。
你其实是想要让光标不能自由移动。那你需要Listener来做。
h*****0
发帖数: 4889
43
String.equal(...) vs ==
-______________-b
b***i
发帖数: 3043
44
来自主题: Java版 - java 响应速度问题
用我的JTextArea来显示文字,我循环显示1-20000,每显示一行都利用我写的函数来计
算屏幕缓冲区的字符,然后生成整个theText,然后设定到setText里面。
我让程序中在自定义的stop按钮按下时,我更改一个boolean emergency = true;
我这个循环其实每次都查询emergency变量,也设volatile了。但是,看到按下stop后
,程序继续运行了大约几秒钟后,才停止显示数字。
这个程序是java application. 没有使用线程。应该怎么做才能让程序在我按下stop时
立即停止呢?
b***i
发帖数: 3043
45
来自主题: Java版 - java 响应速度问题
我觉得你说的也是我程序的一个很大问题,显示100行文字的时间我可以画几千个直线。
我的总体架构是这样:
一个ConsoleWindow keyboardIO extends JTextArea implements....
主程序可以向它设置setText();keyboardIO防在一个JPanel keyboardPane里面。
另外,主程序生成一个image类型的变量, 然后传给keyboardIO 记在hdc变量里。
keyboardPane.setDoubleBuffered(true);
然后,ConsoleWindow 的paint(){
. Rectangle theRect;
. theRect=this.getVisibleRect();
. this.scrollRectToVisible(theRect);
. if (theCanvas!=null)
. g.drawImage(theCanvas.images[nImage], theRect.x, theRect.y, this);
. super.paint(g);
. g.di
t******h
发帖数: 120
46
有一段时间没做swing了
细节可能记得不是很清楚
点击后出现的话实现鼠标单击事件就好了
取得点击的坐标 然后取得该行
再生成一个popup window就好了
w*****g
发帖数: 1415
47
用tooltiptext可以吗?
b***i
发帖数: 3043
48
现在流行1.6。 我做一个项目,源代码1.1的,用TextArea,不是JTextArea,后来我改
成java 5了。后来出了java 6。我现在还没做完这个项目,准备明年改成java7。
b***i
发帖数: 3043
49
下面main代码如果comment,则程序正常。否则每10次有大概一次出问题。咋回事?
theFrame=new JFrame();
theFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
theFrame.setLayout(new BorderLayout()); // original border layout
textpane = new JTextArea(20,40);
textpane.setSize(300,300);
textpane.setText("Please wait for the main to load");
JScrollPane js=new JScrollPane(textpane);
theFrame.add(js, BorderLayout.PAGE_START);
theFrame.pack();
theFrame.setVisible(true);
其他地方,只有这里需要theFr... 阅读全帖
1 (共1页)