0

こんにちは、私はゲームを作ろうとしています。私がやりたい基本的なことは、スクロールバーで JTextArea を追加することです。これは私のコードです:

package TestStuff;

import javax.swing.*;

@SuppressWarnings("serial")
public class JTextAreaTest extends JFrame
{
     public static void main(String[] args)
     {
          new JTextAreaTest();
     }

     public JTextAreaTest()
     {
          this.setSize(1500, 600);
          setDefaultCloseOperation(
               JFrame.EXIT_ON_CLOSE);
          this.setLocation(450, 175);
          this.setExtendedState(JFrame.
MAXIMIZED_BOTH);
          this.setTitle("Game Display Test");

          panel1 = new JPanel(null);

          final JTextArea gameDisplay = new JTextArea(
               500, 300);
          gameDisplay.setBounds(424, 300, 500, 300);
          gameDisplay.setBackground(Color.BLACK);

          Font font = new Font ("Verdana", Font.BOLD, 
              14);
          gameDisplay.setFont(font);
          gameDisplay.setForeground(Color.WHITE);

          final JScrollPane displayScroll = new JScrollPane(
               gameDisplay);
          displayScroll.setHorizontalScrollBarPolicy(
               JScrollPane.HORIZONTAL_SCROLLBAR_AS_
                    NEEDED);
          displayScroll.setVerticalScrollBarPolicy(
               JScrollPane.  
               VERTICAL_SCROLLBAR_AS_NEEDED);

          panel1.add(gameDisplay);
          panel1.add(displayScroll);

          setContentPane(panel1);

          this.setVisible(true);
     }
}

実行するとすべて正常に動作しますが、テキストが JTextArea の境界を超えると、スクロールバーが表示されません! はい、私は絶対配置 (レイアウトなし) を使用していることを知っています。これは悪いことですが、ゲームの他の理由で必要です。前もって感謝します!(また、私のコンピューターでは何らかの理由でこのサイトに接続できませんが、以前にあなたたちを使用したことがあり、あなたは素晴らしいので、携帯電話でこれを入力する必要があります。質問のレイアウトが台無しになっている場合は申し訳ありません、それは電話です:P)

4

2 に答える 2

0

同様の問題があり、解決策はスクロールバー内のコンポーネントのsetPreferredSize でした。スクロールバー内に絶対配置しようとしていました。幸いなことに、私はサイズがどうあるべきかを正確に知っていました. たぶんこれは特殊なケースです。

final JFrame frame = new JFrame("HelloWorldSwing");
final JPanel panel = new JPanel();
panel.setPreferredSize(PUT SIZE HERE);
panel.setLayout(null);
final JScrollPane scrollPane = new JScrollPane(panel);
frame.getContentPane().add(scrollPane);
于 2017-06-21T01:47:13.733 に答える