gpt4 book ai didi

java - 使用 AbstractTableModel for JTable 时换行符 (\n) 不起作用

转载 作者:行者123 更新时间:2023-12-02 05:50:39 29 4
gpt4 key购买 nike

我需要在一个表列中包含多行。我在 String 之间给出了 \r\n。但新线路还没有到来。我尝试过 \nSystem.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

最佳答案

尝试如下例所示的字符串连接器。

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


关于java - 使用 AbstractTableModel for JTable 时换行符 (\n) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56052058/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com