我给jframe加了个jscrollpane,我的想法是每次启动程序时都能显示水平和垂直的scrollbar,但初始时scrollbar是灰色(用setenable实现)的且没有滚动条,当输入的内容超过原始的jtextarea的范围时就显示滚动条.(实例化jtextarea时没有设定行数和列数,只是把其加到jscrollpane中).就像记事本中的. 请问如何实现?(我想获得光标的位置然后与jtextarea的长,高做比较,但不能获得jtextarea的长高.而getRows是获得实例化时的行数,若实例化时没有给定则返回0)
http://java.sun.com/docs/books/tutorial/uiswing/components/scrollpane.html#scrollbars=====Setting the Scroll Bar Policy:Constructor: JScrollPane(Component, int, int)
第一个int设置竖直scrollbar的policy,第二个设置水平的。你需要的应该是:
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS
和
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS参数描述:Always display the scroll bar. The knob disappears if the viewport is large enough to show the whole client.
1.jTextArea.setPreferredSize(width, height);
+2. JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED
配合
JScrollPane js=new JScrollPane();
js.setViewportView(jta);
js.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);setEnable()这个方法好像没什么作用,(不知道是不是这样?)