当前位置: 首页 > 面试题库 >

JTable标头对齐

芮雪风
2023-03-14
问题内容

我想在我的JTable派生类的标题中设置标签的垂直对齐方式。

我知道 setVerticalAlignment(SwingConstants.BOTTOM);

我的标题比字体高得多,我想将文本 放在 垂直中心的 下方

如何做到这一点而又不至于压倒一切paint()

谢谢


问题答案:

一种方法是设置RendererTableHeader默认情况下返回JLabel,例如

  final TableCellRenderer tcrOs = myTable.getTableHeader().getDefaultRenderer();
       myTable.getTableHeader().setDefaultRenderer(new TableCellRenderer() {

            @Override
            public Component getTableCellRendererComponent(JTable table, 
                   Object value, boolean isSelected, boolean hasFocus, 
                   int row, int column) {
                JLabel lbl = (JLabel) tcrOs.getTableCellRendererComponent(table, 
                      value, isSelected, hasFocus, row, column);
                lbl.setForeground(AppVariables.textColor);
                lbl.setBorder(BorderFactory.createCompoundBorder(lbl.getBorder(), 
                      BorderFactory.createEmptyBorder(0, 5, 0, 0)));
                lbl.setHorizontalAlignment(SwingConstants.LEFT);
                if (isSelected) {
                    lbl.setForeground(Color.red);
                    lbl.setBackground(Color.lightGray);
                } else {
                    lbl.setForeground(Color.blue);
                    lbl.setBackground(Color.black);
                }
                return lbl;
            }
        });


 类似资料:
  • 问题内容: 基本上,我有一个JTable包含具有右对齐单元格但左对齐标题的列,这看起来确实很糟糕。我想在不更改标题的“外观”的情况下,将这些列的标题右对齐。 谢谢 问题答案: 这是修改表格的的另一种方法。对于此用法,这不是严格必要的,但可以最大程度地减少对UI委托外观的影响。 典型用法: 自定义标题渲染器:

  • 问题内容: 使用以下示例代码: 我们想用上面的代码在column_names中设置带有列名的标头,但是它不起作用。尽管正在创建表,但标题不可见。 问题答案: 为了能够看到标题,您应该将表放在JScrollPane中。 或者,如果您确实不希望使用滚动窗格,则可以将tableHeader专门添加到面板中(但是:通常,您不希望这种行为):

  • 如果只是将JTable添加到JPanel中,默认情况下它不会显示头部。您应该将该表传递给JScrollPane的构造函数,或者使用该表作为参数调用JScrollPane。那么实际上,是什么使列标题可见呢?它是JScrollPane(和方法)内部呈现的一部分吗? 最初我认为JScrollPane使用它的来实现这一点,但它没有(将null传递给这个方法,表仍然会显示头部)。

  • 我根据本教程制作了一个联系表单:http://blog.teamtreehouse.com/create-ajax-contact-form 我在我的服务器上使用的是PHP5.3.10-1Ubuntu3.4版本,但我遇到了的问题,这正是上面链接中的示例教程所使用的。我读过仅适用于PHP5.4。因此,我转而使用。 我的表单工作得很好,提交时显示成功消息,而不是使用时出现错误,但我的PHP不是那么好,

  • 我试图使我的头的背景具有渐变。 这可以很好地使用代码: 然而,由于某种原因,我看不到我的边框和文本,似乎文本也应用了渐变? 我希望文本为黑色,各栏之间有彩色边框。有什么想法吗?

  • 问题内容: 我需要在JTable标头中包含多个可编辑的行,以便同一标头列可以同时包含JTextField和JButton。 我发现了如何实现可编辑的标题单元以及如何拆分标题单元。但是事实证明,这些方法有些不同,我需要将它们融合为一个。 是否已经开发了多个可编辑的JTable标头行解决方案,所以我不需要重新发明自行车了? 到目前为止,我发现了什么: 可编辑标头行代码,摘自:http : //www.