求教JTextPane的两个问题!
1.我在使用JTextPane发现,当一行字符超过控件宽度后,便自动换行,请问如何不自动换行?
2.如何取得JTextPane中当前光标所在的行和列的值?
问题点数:40、回复次数:5Top
1 楼007JavaKing(乖乖咙的咚)回复于 2005-02-10 01:51:59 得分 0
你看看API吧,我在家里机器上没有Top
2 楼Z_Beginner(探索中)回复于 2005-02-10 02:22:29 得分 0
第二个问题
JText Pane jtp;
Container c=getContentPane();
jtp=new JTextPane();
c.add(jtp);
jtp.addMouseListener(this);
jtp.addMouseMotionListener(this);
public void mouseClicked(MouseEvent e)
{
if(e.getClickCount()==1)
{
jtp.setText("\n"+e.getX()+","+e.getY());
}
}
public void mouseMoved(MouseEvent e){}
public void mouseDragged(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
}
Top
3 楼zhuyinli(Luke^_^)回复于 2005-02-10 18:58:02 得分 0
1.我在使用JTextPane发现,当一行字符超过控件宽度后,便自动换行,请问如何不自动换行?
JTextPane textPane = new JTextPane();
...
textPane.setLineWrap(true); //设置自动换行
textPane.setWrapStyleWord; //设置换行时不会切断单词
...Top
4 楼rainight(雨夜聆风)回复于 2005-02-11 13:55:09 得分 0
to Z_Beginner(初学者) :
我要取的是光标的位置,不是鼠标的位置,因此你给的答案不对。
zhuyinli(Luke^_^) :
你的这答案并不是针对JTextPane的,而是针对JTextArea
各位大侠,我问的这两个问题并不是简单的查查api就能解决的,因此,才来这里麻烦大家的。如果哪位确能解决,还请帮忙!Top
5 楼sclfox(冰河)回复于 2005-03-09 17:30:47 得分 40
JTextPane能够换行,需要重载如下两个函数:
/**
* overridden from JEditorPane
* to suppress line wraps
*
* @see setSize
*/
public boolean getScrollableTracksViewportWidth() {
return false;
}
/**
* overridden from JEditorPane
* to suppress line wraps
*
* @see getScrollableTracksViewportWidth
*/
public void setSize(Dimension d) {
d.width = 1000; // 行的宽度需要你计算文本中最宽的一行是多少
super.setSize(d);
}Top




