JTextArea的自动定位最后一行。
时间: 2024-02-06 21:11:20 浏览: 85
可以通过以下代码实现JTextArea自动定位到最后一行:
```
JTextArea textArea = new JTextArea();
// 将光标移动到最后一行
textArea.setCaretPosition(textArea.getDocument().getLength());
// 然后重新获取焦点
textArea.requestFocusInWindow();
```
这样就可以让JTextArea自动定位到最后一行,并且获取到焦点。
相关问题
for(File f:XmlHanding.fList){ System.out.println(f); }怎么用JTextArea 代替System.out.println(f)输出,且输出的显示和控制台保持一致,要那种一行一行滚动起来的显示
要使用JTextArea代替System.out.println(f)输出,并实现一行一行滚动显示的效果,你可以创建一个JTextArea组件,并将其嵌入到一个JScrollPane中。然后,使用JTextArea的append方法逐行追加输出信息,并通过设置JScrollPane的垂直滚动条位置来实现滚动效果。
以下是示例代码:
```java
import javax.swing.*;
import java.awt.*;
public class OutputGUI extends JFrame {
private JTextArea outputTextArea;
public OutputGUI() {
setTitle("Output GUI");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
outputTextArea = new JTextArea();
outputTextArea.setEditable(false);
JScrollPane scrollPane = new JScrollPane(outputTextArea);
getContentPane().add(scrollPane, BorderLayout.CENTER);
}
public void appendOutput(String output) {
SwingUtilities.invokeLater(() -> {
outputTextArea.append(output + "\n");
outputTextArea.setCaretPosition(outputTextArea.getDocument().getLength());
});
}
public static void main(String[] args) throws InterruptedException {
OutputGUI gui = new OutputGUI();
gui.setVisible(true);
for (File file : XmlHanding.fList) {
gui.appendOutput(file.toString());
Thread.sleep(1000); // 暂停1秒
}
}
}
```
在上述代码中,我们创建了一个继承自JFrame的OutputGUI类,其中包含一个嵌入了JTextArea的JScrollPane来显示输出信息。`appendOutput()`方法用于向文本区域追加输出,并自动将滚动条定位到最后一行。
在main方法中,我们遍历XmlHanding.fList列表,每次迭代时调用`appendOutput()`方法将文件名追加到JTextArea中,并暂停1秒以模拟逐行显示的效果。
这样,你就可以使用JTextArea来替代System.out.println()输出,并实现一行一行滚动显示的效果。
阅读全文