
如何实现 聊天窗口 自动下滑 java
向各位大侠请教:在java下如何实现聊天窗口的自动下滑(就像QQ的聊天窗口一样,总显示最近到达的信息)。JTextArea对象在JScrollPane对象中。针对skyy...
向各位大侠请教:在java下如何实现聊天窗口的自动下滑(就像QQ的聊天窗口一样,总显示最近到达的信息)。JTextArea对象在JScrollPane对象中。
针对skyyks001提供的代码,静态字符串输出没有问题,动态使用不理想。添加文本域对象srArea作为输入文本域,监听器中添加代码
String info=srArea.getText();
textArea.append("From"+info+"\n"+info+"\n");
文本框下滑不到底,只能到达From……这一行。
拜求解决方案 展开
针对skyyks001提供的代码,静态字符串输出没有问题,动态使用不理想。添加文本域对象srArea作为输入文本域,监听器中添加代码
String info=srArea.getText();
textArea.append("From"+info+"\n"+info+"\n");
文本框下滑不到底,只能到达From……这一行。
拜求解决方案 展开
展开全部
给你一个示例代码 调整至最下的那部分在监听器里
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
*
* @author Jeky
*/
public class MainFrame extends JFrame {
private JButton button;
private JScrollPane scrollPane;
private JTextArea textArea;
public MainFrame() {
textArea = new JTextArea("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThis is end!");
scrollPane = new JScrollPane(textArea);
button = new JButton("到最下面");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JScrollBar bar = scrollPane.getVerticalScrollBar();
int max = bar.getMaximum();
bar.setValue(max);
}
});
JPanel south = new JPanel();
south.setLayout(new FlowLayout(FlowLayout.CENTER));
south.add(button);
this.getContentPane().add(scrollPane, BorderLayout.CENTER);
this.getContentPane().add(south, BorderLayout.SOUTH);
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new MainFrame();
}
}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
*
* @author Jeky
*/
public class MainFrame extends JFrame {
private JButton button;
private JScrollPane scrollPane;
private JTextArea textArea;
public MainFrame() {
textArea = new JTextArea("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThis is end!");
scrollPane = new JScrollPane(textArea);
button = new JButton("到最下面");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JScrollBar bar = scrollPane.getVerticalScrollBar();
int max = bar.getMaximum();
bar.setValue(max);
}
});
JPanel south = new JPanel();
south.setLayout(new FlowLayout(FlowLayout.CENTER));
south.add(button);
this.getContentPane().add(scrollPane, BorderLayout.CENTER);
this.getContentPane().add(south, BorderLayout.SOUTH);
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new MainFrame();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询