0

スコアのリストを表示するテキスト領域を作成しようとしています。ただし、何らかの理由で、テキスト領域は誰かが入力したときにのみ展開され、ユーザーは入力することさえ許可されるべきではありません. ちゃんとコードを書いたつもりだったのですが、なぜかうまくいかないようです。追加した「こんにちは」というフレーズは、テキスト領域にも表示されません。誰でもアドバイスを提供できますか:

    public HighScores() throws FileNotFoundException, IOException{
    frame.setVisible(true);
    frame.setSize(400,200);
    frame.add(main);
    GridBagConstraints g = new GridBagConstraints();
    g.insets = new Insets(10,10,10,10);
    g.gridx = 0;
    g.gridy = 0;
    main.add(highscorespanel, g);
    highscorespanel.add(highscores);
    g.gridx = 0;
    g.gridy = 1;
    main.add(textareapanel, g);
    Color c = textareapanel.getBackground();
    textareapanel.setBackground(c);
    textareapanel.add(ta);
    ta = new JTextArea ();
    ta.setVisible(true);
    ta.setEnabled(true);
    ta.setEditable(false);

    ta.append("hello");
    JScrollPane sp = new JScrollPane(ta);
    BufferedReader br = new BufferedReader(new FileReader("src/BattleShip/scores.txt"));
    String namescore = br.readLine();
    while(namescore!=null){
        ta.append("\t"+namescore);
    }
4

1 に答える 1

0

もう答えは必要ないと確信していますが、「textareapanel.add(ta);」という行を移動する必要があります。taを初期化した後のある時点まで。

ta = new JTextArea();
textareapanel.add(ta);
ta.setVisible(true);
ta.setEnabled(true);
ta.setEditable(false);

編集

もう一度見てみると、JTextArea に JScrollPane が必要なので、コードは次のようになります。

JTextArea ta = new JTextArea();
ta.setVisible(true);
ta.setEnabled(true);
ta.setEditable(false);

JScrollPane sp = new JScrollPane(ta);
textareapanel.add(sp);
于 2013-03-04T19:05:46.487 に答える