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,因为它似乎是对组件进行换行的最简单方法。那怎么解决呢?或者有另一种方法可以做同样的事情吗?
答案 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