- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让我的 JTableHeader
的工具提示显示它所属列的宽度,但它不起作用。工具提示未显示。
这是我的JTableHeader
:
myTable.setModel(new DefaultTableModel(new Object[][] {{ label1, label2, label3, label4} },
new String[] { "foo", "bar", "foo bar", "bar foo" }));
final JTableHeader header = new TableHeaderTooltipWidth(myTable.getColumnModel());
header.setReorderingAllowed(false);
header.setResizingAllowed(true);
TableHeaderTooltipWidth
是 JTableHeader
的子类,在阅读 Official Tutorial How to use Tool tips 后,我在其中重写方法 public String getToolTipText(MouseEvent e)
.
package gui.paneles.elementos;
import java.awt.event.MouseEvent;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumnModel;
public class TableHeaderTooltipWidth extends JTableHeader {
private static final long serialVersionUID = 1L;
public TableHeaderTooltipWidth() {
}
public TableHeaderTooltipWidth(TableColumnModel model) {
super();
}
@Override
public String getToolTipText(MouseEvent e) {
int col = columnAtPoint(e.getPoint());
return String.valueOf(this.getColumnModel().getColumn(col).getPreferredWidth());
}
}
但是工具提示没有显示。任何帮助,将不胜感激。谢谢!
最佳答案
..., after reading the Official Tutorial How to use Tool tips.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class TableHeaderTooltipWidthTest {
public JComponent makeUI() {
TableModel model = new DefaultTableModel(
new Object[][] {{ "label1", "label2", "label3", "label4"} },
new String[] { "foo", "bar", "foo bar", "bar foo" });
// How to Use Tables (The Java™ Tutorials)
// Specifying Tool Tips for Column Headers
// https://docs.oracle.com/javase/tutorial/uiswing/components/table.html#headertooltip
JTable table = new JTable(model) {
//Implement table header tool tips.
@Override protected JTableHeader createDefaultTableHeader() {
return new JTableHeader(columnModel) {
@Override public String getToolTipText(MouseEvent e) {
int col = columnAtPoint(e.getPoint());
return String.valueOf(getColumnModel().getColumn(col).getPreferredWidth());
//int index = columnModel.getColumnIndexAtX(e.getPoint().x);
//int realIndex = columnModel.getColumn(index).getModelIndex();
//return String.valueOf(columnModel.getColumn(realIndex).getPreferredWidth());
}
};
}
};
return new JScrollPane(table);
}
public static void main(String... args) {
EventQueue.invokeLater(() -> {
JFrame f = new JFrame();
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.getContentPane().add(new TableHeaderTooltipWidthTest().makeUI());
f.setSize(320, 240);
f.setLocationRelativeTo(null);
f.setVisible(true);
});
}
}
关于java - JTableHeader 的工具提示未显示其列的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38589654/
我试图让我的 JTableHeader 的工具提示显示它所属列的宽度,但它不起作用。工具提示未显示。 这是我的JTableHeader: myTable.setModel(new DefaultTab
我想实现与此类似的标题样式: 如何实现这一点? 到目前为止我所拥有的是: JTableHeader header = table.getTableHeader(); header.se
下面的代码显示了 2 个 JTable。 因为它们都具有完全相同的标题,所以为了提高效率,我希望重用第一个表中的标题。 然而,运行代码会导致标题出现在第二个表中,但不会出现在它最初来自的表中。 我对解
我正在使用此代码: Border border = BorderFactory.createLineBorder(Color.green); DefaulTableModel dtm= new Def
我花了很多时间搜索它,但只找到了 GroupableHeader 代码。我需要一个 2 列 JTable 中超过 2 列的标题。如何在不使用臭名昭著的 GroupableHeader 的情况下做到这一
我正在使用 JTable + JScrollPane + DefaultTableModel。 我需要在 JTableHeader 上实现 Drag-n-Drop。我想将一个列标题拖到我的组件中,并根
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Accessing a JTextField in JTableHeader 如何使 JTableHeade
我试图更改 jTableHeader 的背景颜色和字体大小,但它只更改背景颜色。代码如下: DefaultTableCellRenderer centerRenderer = new DefaultT
这是我的第一篇文章,因此任何有关如何使我的文章变得更好的建议都很棒! 借助该网站的研究,我能够生成一个表格,可以更改其字体、更改对齐方式并保持当前的外观和感觉。但是,我无法更改颜色,并且不确定该怎么做
我的程序中有一个 JTable,我想更改 JTableHeader 的颜色。我使用以下代码完成了此操作 JTableHeader header = table.getTableHeader(); he
我试过以下, foo.getTableHeader().setLayout(new FlowLayout(FlowLayout.LEFT)); 其中 foo 是 JTable 实例,但文本保持居中。为
我制作了一个 TableHeader 渲染器,它将在 JTable 的标题标签下创建一个 JTextfield。我现在遇到的问题是,我从来没有在标题中获得焦点/访问此 JTextfield。 我发现
我一直在尝试使用 Oracle's How To Use Tables 中的代码创建一个带有每个列标题工具提示的 JTable。 The demo似乎可行,但无论我直接粘贴代码还是抽象自己的类,在调用
我有两个 JTable,它们必须彼此同步。这两个JTable都设置为允许记录。 所以我想知道如何在列移动时同步 JTableHeader 行为。 非常感谢,伙计。 最佳答案 为此,您可以使用具有 co
给定 JTable具有 Boolean.class 类型的列,default renderer是一个JCheckBox。根据 user selection 选择单个单元格非常容易。 ,但选择所有复选框
给定一个 JTable具有 Boolean.class 类型的列,default renderer是一个 JCheckBox。根据 user selection 选择单个单元格很容易。 ,但也可以方便
我已经创建了一个类似的帖子,我在编辑中提出了这个问题。但我认为不会有很多人会这样看。我的问题是,如何更改 JTableHeader 的背景颜色(即列的颜色)。我知道正常情况 table.getHead
我是一名优秀的程序员,十分优秀!