私はスイングでデモを作成しましたが、テキストエリアに全文を表示したいと考えています。2 つのテキストエリアをスクロール バーに追加して、スクロール バー内にすべてのコンポーネントを表示したいと考えています。そのためには、パネルを作成し、このパネルに 2 つのテキストエリアを追加してから、このパネルをスクロール バーに追加します。デモを実行すると正しく表示され、ウィンドウのサイズを大きくしても正しく表示されますが、小さい画面のサイズを変更すると問題が発生します。画面のサイズを小さく変更しても、テキストは折り返されません (水平スクロール バーが表示される代わりに)。画面のサイズを小さくすると、自動的に折り返されます。
ここに私のコード: JPanel gui = new JPanel(new GridLayout()); gui.setBorder(新しい EmptyBorder(2, 3, 2, 3));
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);