Java |适合父级在JScrollPane中的宽度

时间:2017-05-03 16:40:31

标签: java

package Rainbow;

import javax.swing.*;
import java.awt.*;

public class Entry
{
    public static void main(String[] Q)
    {
        JFrame R = new JFrame();
        JPanel P = new JPanel()
        {
            public Dimension getMaximumSize()
            { return new Dimension(Integer.MAX_VALUE,getMinimumSize().height); }
        };
        P.setLayout(new BoxLayout(P,BoxLayout.Y_AXIS));
        JTextArea A = new JTextArea(
                "VERYLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONG");
        A.setEditable(false);
        A.setLineWrap(true);
        P.add(new Label("Text"));
        P.add(A);
        JScrollPane S = new JScrollPane(P);
        R.add(S);
        R.setSize(300,300);
        R.setLocationRelativeTo(null);
        R.setVisible(true);
    }
}

这是它在启动时的样子。 StartUp

减小Frame的大小后。 Reduce 里面的JTextArea不会减小它的大小。

我在这里使用JTextArea,因为它似乎是对组件进行换行的最简单方法。那怎么解决呢?或者有另一种方法可以做同样的事情吗?

1 个答案:

答案 0 :(得分:0)

您还需要调整TextArrea的大小。以下是您的问题的一些相关示例:Java JTextArea that auto-resizes and scrolls

描述使用JPanel的示例以及我们如何执行此操作:

JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());  //give your JPanel a BorderLayout

JTextArea text = new JTextArea(); 
JScrollPane scroll = new JScrollPane(text); //place the JTextArea in a scroll pane
panel.add(scroll, BorderLayout.CENTER); //add the JScrollPane to the panel
// CENTER will use up all available space