簡體   English   中英

通過對JTable使用AbstractTableModel,換行符(\\ n)無效

[英]Newline (\n) is not working by using AbstractTableModel for JTable

我需要在一個表列中有多行。 我在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 Joiner,如下例所示。

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


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM