0

列と行で構成される 2 次元配列があり、計算すると行列または行列の値が作成されますが、問題は、テキスト領域に最終結果のみが 2 次元配列に表示され、他のすべての結果ではなく、 netbeans のコンソールでは、すべての値が表示されます。これを有効にするためにコードを変更するにはどうすればよいですか。ありがとうございました

これは私のアクション実行ボタンにあり、

     for (int i =0; i < rows; i++) {
       for (int j = 0; j < cols; j++) {
         matrix_tf.setText(String.valueOf(matrix[i][j]));

これは私の行列を計算するコードです

    private void build_matrix() {
    String seq1 = sequence1_tf.getText();
    String seq2 = sequence2_tf.getText();



    int r, c, ins, sub, del;

    rows = seq1.length();
    cols = seq2.length();

    matrix = new int [rows][cols];

    // initiate first row
    for (c = 0; c < cols; c++)
        matrix[0][c] = 0;

    // keep track of the maximum score
    max_row = max_col = max_score = 0;

    // calculates the similarity matrix (row-wise)
    for (r = 1; r < rows; r++)
    {
        // initiate first column
        matrix[r][0] = 0;

        for (c = 1; c < cols; c++)
        {
                        sub = matrix[r-1][c-1] + scoreSubstitution(seq1.charAt(r),seq2.charAt(c));
                        ins = matrix[r][c-1] + scoreInsertion(seq2.charAt(c));
                        del = matrix[r-1][c] + scoreDeletion(seq1.charAt(r));

            // choose the greatest
            matrix[r][c] = max (ins, sub, del, 0);

            if (matrix[r][c] > max_score)
            {
                // keep track of the maximum score
                max_score = matrix[r][c];
                max_row = r; max_col = c;
            }
        }
    }
}
4

2 に答える 2

0

その名前とjavadocが示すsetText()ように、テキスト領域のテキストを指定された String 引数に設定します。テキストは追加されません。

StringBuilder を使用して、さまざまな行列要素を文字列に連結し、テキスト領域のテキストを完全な結果に設定します。

StringBuilder sb = new StringBuilder();
for (int i =0; i < rows; i++) {
    for (int j = 0; j < cols; j++) {
        sb.append(String.valueOf(matrix[i][j]));
        sb.append(' ');
    }
    sb.append('\n');
}
textArea.setText(sb.toString());
于 2012-10-28T08:32:57.000 に答える
0

このループでは:

 for (int i =0; i < rows; i++) {
   for (int j = 0; j < cols; j++) {
     matrix_tf.setText(String.valueOf(matrix[i][j]));

各反復でフィールドのテキストを設定します(テキストを設定すると、前のテキストが上書きされます)。テキストを連結してみてください:

 for (int i =0; i < rows; i++) {
   for (int j = 0; j < cols; j++) {
     matrix_tf.setText(matrix_tf.getText() + " " + String.valueOf(matrix[i][j]));

テキストフィールドではなくテキストエリアを使用している場合は、@Sujayが提案したように追加を使用します

于 2012-10-28T08:29:04.400 に答える