【发布时间】:2019-09-26 20:31:44
【问题描述】:
我需要在一个表格列中有多行。我在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];
}
}
主类
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
【问题讨论】:
-
您首先要查看How to Use Tables 和Using Custom Renderers。
JLabel不太可能以这种方式支持新行,但它确实支持 html(都仅限于 v3.2) - for example -
v3.2是HTML版?
-
是的……而且有限的 CSS 支持,所以不要期望任何花哨的东西
-
首先,Swing 支持 HTML,一直都有。其次,我已经链接了一个演示该概念的示例,您尝试过吗?
-
是的。使用 StringJoiner 可以正常工作。谢谢
标签: java swing jtable newline tablecellrenderer