0

文字列に格納した値を JTable に入力する際に​​問題があります。

文字列の形式は次のとおりです。

String factor = {"UMIN2\nT_UMIN2\nUMIN1\nT_UMIN1\nUMAX1\nT_UMAX1\nUMAX2\nT_UMAX2"};

Jtable のコードは次のようになります。

    int len = factor.split("[\n\r]").length;
    final String[] columnNames = {"Factor", "Tol, min", "Exp, min", "Exp, max", "Tol, max", "Test 1", "Test 2", "Test 3", "Test 4", "Test 5", "Test 6", "Test 7", "Test 8", "Test 9", "Test 10"};
    final Object[][] data = {{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},        };
    model = new DefaultTableModel(data, columnNames);
    model.setRowCount(len);
    table = new JTable(data, columnNames);
    table.setModel(model);

    for(int x = 0; x < len; x++) table.setValueAt(factor,x,0);

    JTableHeader header = table.getTableHeader();
    header.setFont(new Font("Times New Roman", Font.BOLD, 13));
    header.setBackground(Color.black);
    header.setForeground(Color.white);

    JScrollPane scrollPane = new JScrollPane(table);
    scrollPane.setSize(988, 618);
    scrollPane.setFont(new Font("Times New Roman", Font.BOLD, 13));
    scrollPane.setLocation(10, 60);
    getContentPane().add(scrollPane);

私が得ているものは次のようになります:

[   **factor**   ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]

ただし、私が探しているのは、すべての改行エントリが独自のボックスを取得して、次のようになることです。

[ **factor** ]
[ UMIN2  ]
[ T_UMIN2]
[ UMIN1  ]
[ T_UMIN1]
[ UMAX1  ]
[ T_UMAX1]
[ UMAX2  ]
[ T_UMAX2]

現在、setValueAt 関数を使用しています。

また、ボックスの高さを変更して、すべてのデータを 1 つの dox だけにしようとしましたが、これはうまく機能しますが、後でテーブル内の他のデータに従って色を付ける必要があるため、個々のボックスが必要です。

ご協力いただきありがとうございます。

4

1 に答える 1

2

因子を分割し、各トークンを各行に設定する必要があります。

    int row = 0;
    for (StringTokenizer stringTokenizer = new StringTokenizer(factor, "\n"); stringTokenizer.hasMoreTokens();) {
        String token = stringTokenizer.nextToken();
        table.setValueAt(token, row++, 0);
    }
于 2013-07-30T06:23:43.077 に答える