将JTextArea安在JScrollPane上,JScrollPane便有了滚动条,再用setLineWrap(true)让其超过横向显示区域后自动换行,请问如何实现纵向滚动条随JTextArea内容增加而自动向下移动呢?望哥哥姐姐们帮忙。
解决方案 »
- 求助!“进行语法解析时已到达文件结尾”
- JAVA的多态到底是什么??
- 请求,经验,用xml实现企业间的数据交换。如帮我解决,送上所有可用分!
- JAVA相同接口类的强制转换问题
- 请问:如何动态在class里添加一个Get/Set方法(送高分,保证结贴)
- 上个群满了,好多朋友进不去,我又建了一个 4896616
- String s="星期日 2005-02-04 08:43:56" 怎么处理能得到"2005-02-04 08:43:56"?
- 下面程序如何用用FileOutputStream替代StringReader
- 关于双击jar不能打开的问题,解决100立即送
- [讨论] 不推荐使用RTTI的话Java的多态还有什么用?
- 关于文件流输出
- 如何用Java操作剪贴板?
t1 = new JTextArea("t1", 1, 20),
t2 = new JTextArea("t2", 4, 20),
t3 = new JTextArea("t3", 1, 20),
t4 = new JTextArea("t4", 10, 10),
t5 = new JTextArea("t5", 4, 20),
t6 = new JTextArea("t6", 10, 10);
private JScrollPane
sp3 = new JScrollPane(t3,
JScrollPane.VERTICAL_SCROLLBAR_NEVER,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER),
sp4 = new JScrollPane(t4,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER),
sp5 = new JScrollPane(t5,
JScrollPane.VERTICAL_SCROLLBAR_NEVER,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS),
sp6 = new JScrollPane(t6,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS)
这下知道怎么改了吧!
import java.awt.event.*;
import javax.swing.*;
/**
* Sample application using Frame.
*
* @author
* @version 1.00 05/09/24
*/
public class QqqqqqqFrame extends Frame {
/**
* The constructor.
*/
private JTextArea
t1 = new JTextArea("t1", 1, 20),
t2 = new JTextArea("t2", 4, 20),
t3 = new JTextArea("t3", 1, 20),
t4 = new JTextArea("t4", 10, 10),
t5 = new JTextArea("t5", 4, 20),
t6 = new JTextArea("t6", 10, 10);
private JScrollPane
sp3 = new JScrollPane(t3,
JScrollPane.VERTICAL_SCROLLBAR_NEVER,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER),
sp4 = new JScrollPane(t4,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER),
sp5 = new JScrollPane(t5,
JScrollPane.VERTICAL_SCROLLBAR_NEVER,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS),
sp6 = new JScrollPane(t6,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
public QqqqqqqFrame() {
MenuBar menuBar = new MenuBar();
Menu menuFile = new Menu();
MenuItem menuFileExit = new MenuItem();
menuFile.setLabel("File");
menuFileExit.setLabel("Exit");
JButton b=new JButton("ddd");
this.setLayout(new FlowLayout());
add(sp3);
add(sp4);
add(sp5);
add(sp6);
add(b);
// Add action listener.for the menu button
menuFileExit.addActionListener
(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
QqqqqqqFrame.this.windowClosed();
}
}
);
b.addActionListener
(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
t3.append("123ewseddsdsfdfdfdfdfdsfdfdsf\n");
t4.append("123ewseddsdsfdfdfdfdfdsfdfdsf\n");
t5.append("123ewseddsdsfdfdfdfdfdsfdfdsf\n");
t6.append("123ewseddsdsfdfdfdfdfdsfdfdsf\n");
}
}
);
menuFile.add(menuFileExit);
menuBar.add(menuFile);
setTitle("Qqqqqqq");
setMenuBar(menuBar);
setSize(new Dimension(600, 600));
// Add window listener.
this.addWindowListener
(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
QqqqqqqFrame.this.windowClosed();
}
}
);
}
/**
* Shutdown procedure when run as an application.
*/
protected void windowClosed() {
// TODO: Check if it is save to close the application
// Exit application.
System.exit(0);
}
public static void main(String[] args) {
// Create application frame.
QqqqqqqFrame frame = new QqqqqqqFrame();
// Show frame
frame.setVisible(true);
}
}
将JTextArea安在JScrollPane上,JScrollPane便有了滚动条,再用setLineWrap(true)让其超过横向显示区域后自动换行,请问如何实现纵向滚动条随JTextArea内容增加而自动向下移动呢?如果直接在JTextArea中输入,纵向滚动条随JTextArea内容增加而自动向下移动没有问题,但我用的是append(str+"\n"),str是String对象,想实现像QQ一样的行为(总是显示最新append进来的内容,当新append进来的内容超过可视范围了,滚动条就自动下移来显示它)。