java用JScrollPane为文本域添加滚动条失败
时间: 2024-05-12 16:20:43 浏览: 91
可能是因为你没有将文本域添加到滚动面板中。下面是一个简单的示例代码:
```
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class ScrollPaneExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Scroll Pane Example");
JTextArea textArea = new JTextArea(10, 20);
JScrollPane scrollPane = new JScrollPane(textArea);
frame.add(scrollPane);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
```
在这个示例中,创建了一个文本域和一个滚动面板,并将文本域添加到滚动面板中。然后将滚动面板添加到 JFrame 中。运行代码,就可以看到带有滚动条的文本域了。
相关问题
java给文本域添加滚动条不管用
可能是你没有正确地将文本域添加到带有滚动条的容器中。以下是一个简单的例子,演示如何在Java中为文本区域添加滚动条:
```java
import javax.swing.*;
import java.awt.*;
public class ScrollableTextAreaExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Scrollable TextArea Example");
JTextArea textArea = new JTextArea(10, 30);
JScrollPane scrollPane = new JScrollPane(textArea);
frame.getContentPane().add(scrollPane);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
```
在这个例子中,我们创建了一个JFrame并向其添加了一个JScrollPane,然后将JTextArea添加到JScrollPane中。这将创建一个带有滚动条的文本区域,可以在其中添加文本。确保你正确地将文本区域添加到带有滚动条的容器中,以便滚动条正常工作。
Java 窗口左面是一个read按钮,接着是一个文本域带滚动条,然后是sort按钮,接着还是一个文本域带滚动条,最右面是save按钮1. 点击read按钮,则读入指定txt文档中的内容,显示在第一个文本域(左边文本域中)。 2. 点击sort按钮,则将文本域中以“DBa”和““RRi”开头的字符串提取出来,放到右边的文本域中。 3. 点击save按钮,则将处理过后右边的文本保存到一个新的txt文档中。 请用Java图形界面的知识,编写以上软件。
以下是一个更加完整的Java GUI程序,实现了您提到的三个功能:
```java
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class TextProcessorGUI extends JFrame implements ActionListener {
private JTextArea leftTextArea;
private JTextArea rightTextArea;
public TextProcessorGUI() {
// 设置窗口标题
setTitle("文本处理程序");
// 创建左侧文本域和滚动条
leftTextArea = new JTextArea();
JScrollPane leftScrollPane = new JScrollPane(leftTextArea);
// 创建右侧文本域和滚动条
rightTextArea = new JTextArea();
JScrollPane rightScrollPane = new JScrollPane(rightTextArea);
// 创建按钮
JButton readButton = new JButton("读取");
readButton.addActionListener(this);
JButton sortButton = new JButton("排序");
sortButton.addActionListener(this);
JButton saveButton = new JButton("保存");
saveButton.addActionListener(this);
// 将控件添加到窗口中
Container contentPane = getContentPane();
JPanel panel = new JPanel();
panel.add(readButton);
panel.add(sortButton);
panel.add(saveButton);
contentPane.add(leftScrollPane, BorderLayout.WEST);
contentPane.add(rightScrollPane, BorderLayout.EAST);
contentPane.add(panel, BorderLayout.SOUTH);
// 设置窗口大小
setSize(600, 400);
// 显示窗口
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("读取")) {
// 读取指定txt文档中的内容
try {
BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
String line;
leftTextArea.setText("");
while ((line = reader.readLine()) != null) {
leftTextArea.append(line + "\n");
}
reader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
} else if (e.getActionCommand().equals("排序")) {
// 将以“DBa”和“RRi”开头的字符串提取出来,放到右边的文本域中
String[] lines = leftTextArea.getText().split("\n");
rightTextArea.setText("");
for (String line : lines) {
if (line.startsWith("DBa") || line.startsWith("RRi")) {
rightTextArea.append(line + "\n");
}
}
} else if (e.getActionCommand().equals("保存")) {
// 将处理过后右边的文本保存到一个新的txt文档中
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
writer.write(rightTextArea.getText());
writer.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
new TextProcessorGUI();
}
}
```
该程序使用了Java的Swing库,创建了一个包含两个带滚动条的文本域和三个按钮的窗口。单击“读取”按钮将读取指定的txt文档中的内容,并在左侧文本域中显示。单击“排序”按钮将提取以“DBa”和“RRi”开头的字符串,并在右侧文本域中显示。单击“保存”按钮将保存右侧文本域中的内容到一个新的txt文档中。
阅读全文