怎么给JTextArea添加JScrollBar

怎么给JTextArea添加JScrollBar,第1张

不会单独用 JScrollBar,为什么不用 JScrollPane?

JTextArea jta = new JTextArea()

jta.setVisible(true)

JScrollPane jsp = new JScrollPane(jta)

jsp.setVisible(true)

frame.add(jsp, BorderLayout.CENTER)

frame.setVisible(true)

实现:

(1)设置JTextPane 的策略

DefaultCaret caret = (DefaultCaret)resultTextPane.getCaret()

caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE)

(2)当JTextPane 动态增加内容时

resultTextPane.setSelectionStart(resultTextPane.getText().length())

JScrollBar vertical = scrollPane.getVerticalScrollBar()

vertical.setValue( vertical.getMaximum())

说明:

(1)resultTextPane 的类型是JTextPane

(2)JTextPane和JTextArea的区别:

JTextPane 可以设置html样式

JTextArea无法设置成为html样式

用JScrollBar的setValue方法就可以了,给你举个例子,不过首先你要在JTextArea里面输入很多东西,使滑块出来然后才能设置值:

import javax.swing.*

import java.awt.*

import java.awt.event.*

public class Test extends JFrame{

JScrollPane pane

JButton button

public Test(){

super()

pane=new JScrollPane(new JTextArea())

button=new JButton("点击")

add(pane,BorderLayout.CENTER)

add(button,BorderLayout.SOUTH)

button.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

JScrollBar bar=pane.getVerticalScrollBar()

bar.setValue(bar.getMaximum())

}

})

}

public static void main (String[] args) {

JFrame frame=new Test()

frame.setVisible(true)

frame.setBounds(100,100,300,300)

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11327836.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存