проблема с флажками в столбце Jtable - PullRequest
0 голосов
/ 02 декабря 2009

У меня есть Jtable с 6 столбцами, где у меня есть флажки в 6-м столбце. Я передаю текст в JTable с помощью методов setValueAt () и getValueAt (). Для того же Jtable у меня есть Find, Replace и Заменить все элементы управления, чтобы найти, заменить и заменить весь текст в jtable. Конкретный код будет сфокусирован для поиска текста. Конкретная ячейка будет сфокусирована и заменит текст на данный текст.

Моя проблема заключается в том, что во время замены текста на заданный текст я фокусируюсь на конкретной ячейке и использую setValueAt () для замены. Но флажки в шестом столбце нарушаются, и текст появляется в этом столбце как YES или НЕТ (для выбранного флажка я использовал ДА, а для снятого флажка я использовал НЕТ строк). Вот мой пример кода: ``

StringTokenizer st1 = new StringTokenizer(trstring1, "\t");//trstring1 is the Jtable string
        for (i = 0; st1.hasMoreTokens(); i++) {
            for (j = 1; j < 6; j++) {
                rowstring = st1.nextToken();
                if (rowstring.contains(findTxt)) {
                    rowstring = rowstring.replace(findTxt, replaceTxt);
                    str = trstring1.replaceFirst(findTxt, replaceTxt);
                    mProcessQuestionTestItemTable.setCellSelectionEnabled(true);
                    mProcessQuestionTestItemTable.changeSelection(i, j, false, false);
                    mProcessQuestionTestItemTable.requestFocus();
                    System.out.println("I:" + i);
                    System.out.println("J:" + j);
                    mProcessQuestionTestItemTable.setValueAt(rowstring, i, j);


                }

              }`

1 Ответ

1 голос
/ 02 декабря 2009

У меня есть Jtable с 6 столбцами, где у меня есть флажки в 6-м столбце Следовательно, вы должны выполнять циклы из столбцов с индексами от 0 до 4.

Это:

        for (j = 1; j < 6; j++) {

должно быть так:

        for (j = 0; j < 5; j++) {

вместо этого. Если вы заметили, что в дополнение к ненужному тексту, появляющемуся в 6-м столбце с флажками, функции замены текста также не работали для элементов в 1-м столбце, это также объясняет / исправляет это.

НТН.

p.s. Я предполагаю, что немного, перефразирую ваш вопрос, чтобы было немного яснее, если бы это было не то, что вы имели в виду ...


EDIT:

Просто уточню мой комментарий:

Учебник по Java Swing - хорошее место для начала: как получить логические значения для отображения в JTables в виде флажков . Вам интересно, где они реализуют пользовательскую TableModel для своей таблицы, выполнив:

class MyTableModel extends AbstractTableModel {

    ...

    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }

    ...
}

В вашем случае это может быть что-то более явное, например

    public Class getColumnClass(int c) {
        if (c == 7)
        {
            return Boolean.TYPE;
        }
        return String.class;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...