【问题标题】:Java | Fit parent's width inside JScrollPane爪哇 |在 JScrollPane 中适合父级的宽度
【发布时间】:2017-10-01 14:50:06
【问题描述】:
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

缩小框架尺寸后。 Reduce 里面的 JTextArea 不会减小它的大小。

我在这里使用 JTextArea 是因为它似乎是在组件上进行换行的最简单方法。那么如何解决呢?还是有其他方法可以做同样的事情?

【问题讨论】:

    标签: java


    【解决方案1】:

    您还需要调整 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-23
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多