gpt4 book ai didi

java - JTextArea 无滚动条

转载 作者:行者123 更新时间:2023-12-04 20:48:09 31 4
gpt4 key购买 nike

private JPanel contentPane;
public Driver() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 867, 502);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
final JTextArea textArea = new JTextArea();
textArea.setEditable(false);
textArea.setBounds(10, 11, 831, 393);
JScrollPane scroll = new JScrollPane(textArea);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
textArea.setText("dfgf");
contentPane.add(scroll);
}

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Driver frame = new Driver();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

为什么这不显示带滚动条的 textArea

我的问题是我什至没有看到 textArea。但是如果我改为执行 contentPane.add(scroll);,我可以看到 textArea 但没有滚动。

最佳答案

“为什么不显示带有滚动条的 textArea?”

因为滚动 Pane 的视口(viewport)有自己的布局管理器,并且会根据需要更改文本区域中的位置

视口(viewport)将使用文本区域的首选大小属性来确定如何对其进行布局。您可以通过向文本区域添加文本和/或根据需要设置行/列属性来影响此值。

更新了示例

enter image description here

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class TestScrollPane03 {

public static void main(String[] args) {
new TestScrollPane03();
}

public TestScrollPane03() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}

JTextArea textArea = new JTextArea(100, 50);
JScrollPane scrollPane = new JScrollPane(textArea);

JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(scrollPane);
frame.setSize(200, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}

根据问题的变化进行更新

正如 camickr 已经指出的,您遇到的问题与您如何布置组件有关。

这个 contentPane.setLayout(null); 只是您的众多问题之一。停止使用 null 布局并开始使用适当的布局管理器。

关于java - JTextArea 无滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15454442/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com