在java中的表行标题上绘制行行

时间:2014-12-10 11:18:50

标签: java swing jtable border rowheader

我有这个JTable,有一个行标题(左边是粉红色)。 如何在它们之间设置边界线?

我尝试了setborder方法,但它只设置了外边框,我需要它们之间的空间 - 就像在上面的列标题中一样。

我该如何实现?

修改 这是行标题的代码:

static String[] rowHeaders = {
        "mc 01", "mc 02", "mc 03", "mc 04", "mc 05",
        "mc 06", "mc 07", "mc 08", "mc 09", "mc 10", "mc 11", "mc 12",
        "mc 13", "mc 14", "mc 15", "mc 16", "mc 17", "mc 18", "mc 19",
        "mc 20", "mc 21", "mc 22", "mc 23", "mc 24", "mc 25", "mc 26",
        "Nitris 01", "Nitris 02", "Sound A", "Sound B", "Sound C" };

JList rowHeader;

// CREATING A ROW HEADER 
ListModel lm = new AbstractListModel() {

      public int getSize() 
      {
        return rowHeaders.length;
      }

      public Object getElementAt(int index) 
      {
        return rowHeaders[index];
      }
    };

    rowHeader = new JList(lm);
    rowHeader.setFixedCellWidth(80);
    rowHeader.setFixedCellHeight(myTable.getRowHeight());
    rowHeader.setBackground(Color.pink);
    rowHeader.setFont(new Font("Ariel", 1, 18));
 //     rowHeader.setBorder(new LineBorder(Color.BLACK, 1));

    DefaultListCellRenderer renderer =  (DefaultListCellRenderer)rowHeader.getCellRenderer();  
    renderer.setHorizontalAlignment(JLabel.CENTER);

    myTableScrollPane.setRowHeaderView(rowHeader);

谢谢

戴夫。

enter image description here

2 个答案:

答案 0 :(得分:1)

看看Row Number Table。它显示了如何将数字添加为行标题。

该代码还显示了如何创建自定义渲染以呈现数字。提供的代码使用列标题的边框,但您可以将其更改为您希望的任何边框。它还显示了如何突出显示当前所选的行标题,以防您需要该功能。

答案 1 :(得分:0)

终于找到了我在这里寻找的东西:

JList: How to get a LineBorder "between" cells?

谢谢!