换行符 (\n) 无法使用 JTable 的 AbstractTableModel
Newline (\n) is not working by using AbstractTableModel for JTable
我需要在一个 table 列中包含多行。我在 String
之间给出了 \r\n
。但是新线不会来。我试过 \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];
}
}
主要class
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
按以下示例尝试字符串连接器。
String[] data = rowData.get(rowIndex);
StringJoiner joiner = new StringJoiner("<br>", "<html>", "</html>");
for (String text : data) {
joiner.add(text);
}
value = joiner.toString();
我需要在一个 table 列中包含多行。我在 String
之间给出了 \r\n
。但是新线不会来。我试过 \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];
}
}
主要class
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
按以下示例尝试字符串连接器。
String[] data = rowData.get(rowIndex);
StringJoiner joiner = new StringJoiner("<br>", "<html>", "</html>");
for (String text : data) {
joiner.add(text);
}
value = joiner.toString();