使JList单元格内的HTML表格与单元格一样宽

时间:2013-12-22 21:46:14

标签: java html jlist

我正在使用HTML来设置JList中的单元格 - 它是一个简单的双行表,其中第二行具有非默认背景。我希望该行跨越单元格的整个宽度,而不是只有它内部文本的宽度。

以下是一个例子:

import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JList;

public class Example {

    public static void main(String[] args) {
        JFrame frame = new JFrame();              
        String html = "<html>";
        html += "<style type=\"text/css\">"
                + "body { margin: 0px auto; }\n"
                + "td { padding: 0px; margin: 0px; }\n"
                + "</style>";
        html += "<body><table>";
        html += "<tr><td>line1</td></tr>";
        html += "<tr><td bgcolor=blue color=white>line2</td></tr>";
        html += "<body></table></html>";
        ArrayList<String> dataList = new ArrayList();
        dataList.add(html);
        JList list = new JList(dataList.toArray()); 
        frame.getContentPane().add(list);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);        
    }
}

“line2”具有蓝色背景,但仅在文本下方。我希望它一直到窗口的末尾,基本上使表(或行)宽度为单元格宽度的100%。

我尝试在各个地方放置“width:100%”,没有效果。唯一有效的方法是将td {width ...}设置为特定的像素宽度,但是我需要一个自定义的单元格渲染器来在每次调整窗口/组件大小时更改该宽度...它看起来像必须有一个简单的html / css解决方案来解决这个问题。

0 个答案:

没有答案