Новая строка (\ n) не работает с использованием AbstractTableModel для JTable - PullRequest
0 голосов
/ 09 мая 2019

Мне нужно иметь несколько строк в одном столбце таблицы. Я дал \r\n между String. Но новая линия не идет. Я пробовал с \n, System.lineSeparator() и line.separator. Ничего не работает

Мой вывод должен содержать несколько строк в каждой ячейке.

Мой код показан ниже:

import java.awt.BorderLayout;
import java.awt.Container;
import java.util.Calendar;
import java.util.GregorianCalendar;

import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;

class AppSwing extends AbstractTableModel {



  public Object[][] values = {
      { "C\r\n\r\nAfterNewLine", "A\r\n\r\n" },
     };

  public int getRowCount() {
    return values.length;
  }

  public int getColumnCount() {
    return values[0].length;
  }

  public Object getValueAt(int row, int column) {
    return values[row][column];
  }
} 

Основной класс

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JTable;

class App extends JFrame {

protected JTable table;

  public static void main(String[] args) {
    App stt = new App();
    stt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    stt.setSize(400, 200);
    stt.setVisible(true);
  }

  public App() {
    Container pane = getContentPane();
    pane.setLayout(new BorderLayout());
    AppSwing tv = new AppSwing();
    table = new JTable(tv);
    pane.add(table, BorderLayout.CENTER);
  }

}

Результат -

CAfterNewLine A

1 Ответ

0 голосов
/ 16 мая 2019

Попробуйте String Joiner, как показано ниже.

 String[] data = rowData.get(rowIndex);
                    StringJoiner joiner = new StringJoiner("<br>", "<html>", "</html>");
                    for (String text : data) {
                        joiner.add(text);
                    }
                    value = joiner.toString();


...