-1

私はプログラミングの初心者で、スクロール パネルを JTextArea に追加したかったので、オンラインでチュートリアルを調べてみました。私は例に従いましたが、うまくいきません。誰かが間違っていることを教えてください。どうもありがとうございます

    public View(Model model) {
    this.model = model;
    setBounds(100,50, 800, 400);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    Container c =  getContentPane();
    addDisplay(c);
    addButtons(c);
    addTxt(c);

}

private void addDisplay(Container c){
    JPanel p = new JPanel();
    addTxt2(p);
    addTxt(p);
    add(p, "North");

}

    private void addTxt(JPanel p){
        txt = new JTextArea(15, 35);
        txt.setBackground(Color.BLACK);
        txt.setForeground(Color.WHITE);
        txt.setEditable(true);  

        JScrollPane scroll= new JScrollPane (txt);
        p.add(scroll); 


}
4

2 に答える 2

1

コンポーネントrevalidaterepaint_JPanel

p.add(scroll); 
p.revalidate();
p.repaint();

の使用から、setBoundsレイアウト マネージャーが使用されていないように見えます。null絶対配置 (レイアウト)を使用しないでください。デフォルトでは、コンポーネントのサイズは である0 x 0ため、サイズが設定されていないと表示されません。ここでは、代わりにレイアウト マネージャーを使用する必要があります。

SSCCEを投稿して、より適切なヘルプを迅速に提供する

于 2013-05-22T18:22:23.347 に答える
0

スクロールの境界を設定し、スクロールsetBounds(int, int, int, int) の領域を定義する必要がありますJTextArea

次に例を示します。

public class ScrollingTextArea extends JFrame {

    JTextArea txt = new JTextArea();
    JScrollPane scrolltxt = new JScrollPane(txt);

    public ScrollingTextArea() {

        setLayout(null);

        scrolltxt.setBounds(3, 3, 300, 200);
        add(scrolltxt);     
    }


    public static void main(String[] args) {

        ScrollingTextArea sta = new ScrollingTextArea();
        sta.setSize(313,233);
        sta.setTitle("Scrolling JTextArea with JScrollPane");
        sta.show();     
    }

}

ここで見つけました

于 2013-05-22T23:35:04.400 に答える