質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • Java

    14093questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

javaにて。インスタンス[JTextArea]の生成をfor文の中でタグ付けを行って、その値をタグを使って取得するには?

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 750

KakegawaKouiti

score 16

前提・実現したいこと

javaです。for文でtextFieldを複数回生成する。
そこにユーザーが入力したテキスト内の文字情報を
外部ファイル(txt)にまとめて書き出す

発生している問題・エラーメッセージ

javaで簡単な入力のためのアプリを作っています。
jqueryでは、テキストエリアにタグ付けが
簡単に出来たので、テキスト内の文字情報を
簡単に取得出来たのですが、javaでは
そのようなタグ付け?のような事がうまく出来ません。
すいません、かなり初歩的な問題だと思うのですが、
調べても全然分かりませんでした。
クラスを配列に入れる?ような事は可能なんでしょうか?
似たようなくらすを全部記述する、というのは
かなり不便なので、for文で、添え字の番号だけ変えて
作れれば便利だなと思ってます。

エラーメッセージ


コンパイルは通りますが、
ボタンを押すとNullPointerExceptionが発生します。
```

該当のソースコード

//java

import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.*;
import java.util.HashMap;

public class SwingAppMain_kai1 implements ActionListener {
        private JFrame mainFrame;
        private Container contentPane;
        private JTextField textField;
        private JTextArea textArea;
        private JScrollPane scrollPane;
        private JPanel buttonPane;
        private JButton addButton;
        private JButton clearButton;

        private JFrame mainFrame1;
        private Container contentPane1;
        private JTextField textField1;
        private JTextArea textArea1;
        private JScrollPane scrollPane1;
        private JPanel buttonPane1;
        private JButton addButton1;
        private JButton clearButton1;
        // コンストラクタ

  public static void main(String[] args) {
                new SwingAppMain_kai1();
        }
        public SwingAppMain_kai1(){
                mainFrame = new JFrame("サンプル");
                mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                mainFrame.setSize(320, 200);
                mainFrame.setLocationRelativeTo(null);
                contentPane = mainFrame.getContentPane();
                textField = new JTextField();
                textArea = new JTextArea();
                scrollPane = new JScrollPane(textArea);
                addButton = new JButton("追加");
                clearButton = new JButton("消去");
                // 「追加」ボタンとアクション・リスナーの関連付け
                addButton.addActionListener(this);
                // 「消去」ボタンとアクション・リスナーの関連付け
                clearButton.addActionListener(this);
                buttonPane = new JPanel();
                buttonPane.add(addButton);
                buttonPane.add(clearButton);
                contentPane.add(textField, BorderLayout.NORTH);
                contentPane.add(scrollPane, BorderLayout.CENTER);
                contentPane.add(buttonPane, BorderLayout.SOUTH);
                mainFrame.setVisible(true);

        }
        // 利用者の操作に応じた処理を実装
        public void actionPerformed(ActionEvent event){
                JTextArea[] array;
                array = new JTextArea[5];
                // ユーザの操作対象を判断
                if(event.getSource() == addButton) {
                        // テキストエリアへ文字列を追加
                        //textArea.append(textField.getText() + "\n");

        for(int i=0;i<5;i++){
                int a=0;
                int b=0;
                a =(int)( Math.random()*1000 ) % 500;
                b =(int)( Math.random()*1000 ) % 500;
                mainFrame1 = new JFrame("サンプル1");
                mainFrame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                mainFrame1.setBounds(a,b, 200, 200);
                //mainFrame1.setLocationRelativeTo(null);
                contentPane1 = mainFrame1.getContentPane();
                array[i] = new JTextArea();
                //HashMap<String,String> map = new HashMap<String,String>();
                //map.put(i,textField1);
                //JTextArea[] array;
                //textArea1 = new JTextArea[5];
                scrollPane1 = new JScrollPane(textArea1);
                addButton1 = new JButton("追加");
                clearButton1 = new JButton("消去");
                // 「追加」ボタンとアクション・リスナーの関連付け
                addButton1.addActionListener(this);
                // 「消去」ボタンとアクション・リスナーの関連付け
                clearButton1.addActionListener(this);
                buttonPane1 = new JPanel();
                buttonPane1.add(addButton1);
                buttonPane1.add(clearButton1);
                contentPane1.add(textField1, BorderLayout.NORTH);
                contentPane1.add(scrollPane1, BorderLayout.CENTER);
                contentPane1.add(buttonPane1, BorderLayout.SOUTH);
                mainFrame1.setVisible(true);

                }

                }
                if(event.getSource() == clearButton) {
                        // テキストエリアの文字列を全消去
                        //textArea.setText(null);

                try{
                String st =null;
                st = array[0].getText();    
                BufferedWriter bw = new BufferedWriter( new FileWriter("test_1_1.txt") );
                //bw.newLine();
                bw.write(st);
                bw.close();
                }
                catch(IOException e){
                System.exit(1);
                }

                }
        }
        // アプリケーションの起動

}

試したこと

課題に対してアプローチしたことを記載してください
hashamapやarrayリストを使いましたが、
うまくいきませんでした。

補足情報(言語/FW/ツール等のバージョンなど)

より詳細な情報

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

問題が発生した場合、Exception名だけでなく、スタックトレースも提示していただけると状況理解が早くなります。
ソースコードもコード用のツールを使用して下さい。

本題と異なりますが、提示いただいたソースコードを実行したところ、「contentPane1.add(textField1, BorderLayout.NORTH);」でNullPointerExceptionが発生します。
textField1は変数名が宣言されているだけで、インスタンスが作成されていないため、textField1がnullです。これが原因と思われます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/14 15:40

    解決しました。for文内でnewが出来てインスタンスを配列みたいに使える事が分かりとても良かったです。大変にありがとうございました。

    キャンセル

関連した質問

  • 解決済

    ボタンを動的に作る方法

    ブックマークを管理するGUIアプリをSwingで作ろうとしています。 まずJsonで管理しようと思いJsonにサイト情報を追加するコードを作りました。 それからGUI部分を作ろうと

  • 解決済

    ボタンに表示されるフォントを設定について

    JButtonにフォントを設定する場合、下ので出来ますが   JButton button = new JButton("ボタン");   button.setFont(new 

  • 解決済

    国旗を表示させたい(続き)

    前提・実現したいこと btn [0][1][2]をクリックすると、それに対応した国旗が表示されるようにしたい。 ソースコード import java.awt.*;   

  • 解決済

    java swing sql文追加に関して

    前提・実現したいこと javaのswingを使用し、アプリケーションを作成しています。 パネル上に設置しているチェックボックスがすべてオフならば SQLの検索条件から除外する

  • 解決済

    jtableのクリック時、行取得。

    前提・実現したいこと swingを使用してjtableからクリックされている行の値を取得したいと考えいます。 actionPerformedを使用し、ボタンが押下されたとき

  • 解決済

    javaで特定の文字を打った時JLabelに画像表示したい

    textFieldに文字"test"と打った時 JLabelに画像test.jpgを表示したいです

  • 解決済

    JFrameでのJPanelの切り替えについて

    前提・実現したいこと (例)Java(UIはJFrame)でゲームを作っているのですが、JPanelの切り替えをJFrameで行おうとしています。 しかし、JPanelの切り替

  • 解決済

    NetBeansのボタンでテキストファイルを出力したい

    javaのNetBeansについて質問です。 ボタンを押すと、NetBeansでつくったテキストファイルの中身をテキスト領域に表示するようにしたいのですが、調べても分からなくて困

同じタグがついた質問を見る

  • Java

    14093questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • トップ
  • Javaに関する質問
  • javaにて。インスタンス[JTextArea]の生成をfor文の中でタグ付けを行って、その値をタグを使って取得するには?