9

每当 JLabel 在标签中包含文本时,它都会自动应用换行(似乎)。我的要求是,无论标签包含什么文本,都应始终禁用换行。由于遗留原因,我无法在渲染器中使用 JTextArea。

4

1 回答 1

17
  1. 您可以<nobr></nobr>在不想被包装的 HTML 内容周围使用标签
  2. 简单的非 HTML 内容永远不会被包装在 JLabel 中

这是一个例子:

public static void main ( String[] args )
{
    JFrame frame = new JFrame ();
    frame.setLayout ( new BorderLayout () );

    final String html = "<html><body><nobr>CMV Antigenemia Stat X 2.0 dose(s)</nobr></body></html>";
    final String simple = "<html><body>CMV Antigenemia Stat X 2.0 dose(s)</body></html>";

    JTable table1 = new JTable ( new String[][]{ { html, html, html, html, html } }, new String[]{ html, html, html, html, html } );
    table1.setRowHeight ( 50 );
    frame.add ( table1, BorderLayout.NORTH );

    JTable table2 = new JTable ( new String[][]{ { simple, simple, simple, simple, simple } },
            new String[]{ simple, simple, simple, simple, simple } );
    table2.setRowHeight ( 50 );
    frame.add ( table2, BorderLayout.CENTER );

    frame.pack ();
    frame.setLocationRelativeTo ( null );
    frame.setVisible ( true );
}

如您所见 - 第一个表格中的 HTML 内容没有被包装。

于 2012-10-15T12:05:48.037 回答