有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我用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%

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


共 (0) 个答案