以下是我的代码的一部分:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class WindowTest {
JFrame window = new JFrame();
JPanel panel = new JPanel();
JTextArea text = new JTextArea();
JScrollPane scroll = new JScrollPane(text);
private WindowTest() {
createWindow();
}
public void createWindow() {
window.setLayout(null);
window.setVisible(true);
panel.setVisible(true);
text.setBounds(20, 100, 320, 270);
scroll.setVisible(true);
window.add(scroll);
}
public static void main(String[] args) {
new WindowTest().createWindow();
}
}
我想知道如何将滚动条添加到TextArea" text"。它是一个数据库应用程序,它将数据字符串发送到TextArea。我希望应用程序在必要时显示滚动条(垂直或水平) - TextArea中的字符串太多。我一直在尝试很多东西,但没有任何作用。布局必须为null,因为我手动创建了所有组件,我不想从头开始设置所有内容(它只是代码的一部分)。
答案 0 :(得分:3)
text.setBounds(20, 100, 320, 270);
不要在JTextArea组件上设置边界。它需要变大才能显示整个文本。然后,JScrollPane将显示JTextArea的一部分。
更新:也可以使用合适的布局管理器,不要使用绝对定位。
更正后的代码:
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class WindowTest {
JFrame window = new JFrame();
JTextArea text = new JTextArea();
JScrollPane scroll = new JScrollPane(text);
private WindowTest() {
createWindow();
}
public void createWindow() {
window.setLayout(new BorderLayout());
window.add(scroll, BorderLayout.CENTER);
window.setVisible(true);
}
public static void main(String[] args) {
new WindowTest().createWindow();
}
}
答案 1 :(得分:2)
你的错误:
window.setVisible(true);
必须在最后调用。以下代码为我工作。
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class WindowTest {
JFrame window = new JFrame();
JTextArea text = new JTextArea();
JScrollPane scroll = new JScrollPane(text);
private WindowTest() {
createWindow();
}
public void createWindow() {
window.setLayout(null);
scroll.setBounds(20, 100, 320, 270);
window.add(scroll);
window.setSize(500, 500);
window.setVisible(true);
}
public static void main(String[] args) {
new WindowTest().createWindow();
}
}