b***i 发帖数: 3043 | 1 我想使用制表符,比如|, 等,
但是上下行之间有空白。在DOS当年是可以两个||上下连在一起的。
这个如何实现? |
h*****0 发帖数: 4889 | 2 这个不好实现。事实上不同系统或不同字体下|的长度就是不一样的。
你真有制表的需求,为啥不用JTable?
【在 b***i 的大作中提到】 : 我想使用制表符,比如|, 等, : 但是上下行之间有空白。在DOS当年是可以两个||上下连在一起的。 : 这个如何实现?
|
b***i 发帖数: 3043 | 3 我就是想实现一个DOS界面,或者,Apple II界面那样的console
如果我假定是Windows,设定什么字体可以这样?在Windows Notpad里SimHei就是这样的
效果,
但是我在java JTextArea却不是。
实在不行,就只好画图了
【在 h*****0 的大作中提到】 : 这个不好实现。事实上不同系统或不同字体下|的长度就是不一样的。 : 你真有制表的需求,为啥不用JTable?
|
h*****0 发帖数: 4889 | 4 那你得去找字符“|”
注意,是有这么个专门的制表符,不是键盘上的那个符号。BBS Telnet模式下就常用。
【在 b***i 的大作中提到】 : 我就是想实现一个DOS界面,或者,Apple II界面那样的console : 如果我假定是Windows,设定什么字体可以这样?在Windows Notpad里SimHei就是这样的 : 效果, : 但是我在java JTextArea却不是。 : 实在不行,就只好画图了
|
b***i 发帖数: 3043 | 5 多谢啊,还是这个问题。同样的字符在notepad下可以上下联一起,但是word里就不能
。估计行间距java不能调。
我决定使用图形了。我把图形作为背景,放在jTextArea里面。但是遇到了闪烁问题。
MyTextArea extends JTextArea
paint(Graphics g)
{
g.drawImage...
super.paint(g);
g.finalize();
}
然后在主程序每次作图修改image后
theTextArea.repaint(g);
结果,每次都看到这个区域白光闪过。倒是更新了,但是我不希望出现这个白光闪烁。
怎么去掉呢?目的就是在text内容没有变,但是背景image变了后,能够更新图像,但
是不想有闪烁。
【在 h*****0 的大作中提到】 : 那你得去找字符“|” : 注意,是有这么个专门的制表符,不是键盘上的那个符号。BBS Telnet模式下就常用。
|
c*****t 发帖数: 1879 | 6 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 的大作中提到】 : 多谢啊,还是这个问题。同样的字符在notepad下可以上下联一起,但是word里就不能 : 。估计行间距java不能调。 : 我决定使用图形了。我把图形作为背景,放在jTextArea里面。但是遇到了闪烁问题。 : MyTextArea extends JTextArea : paint(Graphics g) : { : g.drawImage... : super.paint(g); : g.finalize(); : }
|