【问题标题】:Draw Row Lines on the Jtable RowHeaders in hava在java中的Jtable行标题上绘制行线
【发布时间】:2014-12-10 11:18:50
【问题描述】:

我有这个 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);

谢谢

戴夫。

【问题讨论】:

  • 行标题是如何生成的?
  • 通过添加 Border 更好的是 1.column 到 RowHeader
  • 刚刚更新了所有细节
  • 您可以使用here 所示的方法创建自定义标题渲染器。
  • 不要使用 JList,而是使用带有单列的 JTable。

标签: java swing jtable border rowheader


【解决方案1】:

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

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

【讨论】:

  • 我知道这个例子,它确实帮助我完成了到目前为止所做的事情,但它不会回答我的问题,我需要尝试在我当前的编码中添加边界线。
  • @DavidGidony 它回答了这个问题。您需要为行标题中的单元格周围的边框使用自定义渲染器。我展示了如何使用 JTable 创建自定义渲染器。修改和更改边框很容易。 I need to try to add the borderlines in my current coding. 如果您想继续使用 JList,那么您需要为 JList 创建一个自定义渲染器。阅读 JList API 并点击关于“如何使用列表”的 Swing 教程的链接来查找示例,或者您可以搜索论坛。因此,要么修改代码以使用 JTable,要么更改代码以添加自定义渲染器。
【解决方案2】:

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

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

谢谢!

【讨论】:

    猜你喜欢
    • 2012-09-21
    • 2021-07-31
    • 2012-07-24
    • 2012-12-17
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多