Swing JPanel上JScrollPane内部的JTextAreas未正确显示
我已经通过swing创建了一个演示,我想在textarea中显示全文。我想在滚动条中添加两个textarea,以显示滚动条中的所有组件。为此,我创建了一个面板,然后在这个面板上添加了两个textarea,然后将这个面板添加到滚动条中。当我运行演示,它显示正确,它也显示正确时,我调整窗口较大,但它有问题时,我调整较小的屏幕。缩小屏幕大小时,它不会包装文本(而不是显示水平滚动条)。 你能帮我把屏幕缩小时自动包装吗 这是我的代码: jpanelgui=newjpanel(newgridlayout()); setboorder(新的EmptyBorder(2,3,2,3))Swing JPanel上JScrollPane内部的JTextAreas未正确显示,swing,scrollbar,jscrollpane,Swing,Scrollbar,Jscrollpane,我已经通过swing创建了一个演示,我想在textarea中显示全文。我想在滚动条中添加两个textarea,以显示滚动条中的所有组件。为此,我创建了一个面板,然后在这个面板上添加了两个textarea,然后将这个面板添加到滚动条中。当我运行演示,它显示正确,它也显示正确时,我调整窗口较大,但它有问题时,我调整较小的屏幕。缩小屏幕大小时,它不会包装文本(而不是显示水平滚动条)。 你能帮我把屏幕缩小时自动包装吗 这是我的代码: jpanelgui=newjpanel(newgridlayout()
只需省略滚动窗格,并使文本区域成为容器的直接子级 JTextArea会根据其包含的文本更改其首选大小。从文件中:
TextArea有两个属性行和列,用于确定首选大小。JTextArea使用这些属性来指示当放置在JScrollPane中时视口的首选大小,以匹配java.awt.TextArea提供的功能。JTextArea具有显示所有文本所需的首选大小,以便它在JScrollPane中正常工作。如果行或列的值等于零,则沿该轴的首选大小将用于沿同一轴的视口首选大小。为什么要将包含文本区域的面板添加到滚动窗格?为什么不在每个文本区域添加自己的滚动窗格?
JTextArea area = new JTextArea("JTextArea on JPanel inside JScrollPane does not resize properly");
area.setWrapStyleWord(true);
area.setLineWrap(true);
gui.add(area);
JTextArea area1 = new JTextArea("JTextArea on JPanel inside JScrollPane does not resize properly");
area1.setWrapStyleWord(true);
area1.setLineWrap(true);
gui.add(area1);
gui.setBackground(Color.WHITE);
JScrollPane scroller = new JScrollPane(gui);
//scroller.setBorder(new EmptyBorder(2, 3, 2, 3));
JFrame f = new JFrame("Big Text Fields");
f.add(scroller,BorderLayout.CENTER);
// Ensures JVM closes after frame(s) closed and
// all non-daemon threads are finished
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
// See http://stackoverflow.com/a/7143398/418556 for demo.
f.setLocationByPlatform(true);
// ensures the frame is the minimum size it needs to be
// in order display the components within it
f.pack();
// should be done last, to avoid flickering, moving,
// resizing artifacts.
f.setVisible(true);