我需要这样的行为:当鼠标光标指向JTable
单元格时 - 将需要显示弹出菜单或类似的内容。无需在单元格上单击鼠标。有什么建议吗?
最佳答案
JB Nizet 的观点很好。 OTOH,我准备了这个例子,并且“我们有技术”。
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
class TimesTable {
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() {
public void run() {
JTable t = new JTable(new TimesTableModel());
t.setDefaultRenderer(Object.class, new TimesTableRenderer());
JOptionPane.showMessageDialog(null, t);
}
});
}
}
class TimesTableRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(
JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
Component c = super.getTableCellRendererComponent(
table,value,isSelected,hasFocus,row,column);
JComponent jc = (JComponent)c;
jc.setToolTipText(
(row+1) + "x" + (column+1) + "=" + ((row+1)*(column+1)));
return jc;
}
}
class TimesTableModel extends DefaultTableModel {
@Override
public int getColumnCount() {
return 7;
}
@Override
public int getRowCount() {
return 5;
}
@Override
public Object getValueAt(int row, int column) {
return new Integer((row+1)*(column+1));
}
}
关于java - 当鼠标光标位于 JTable 的单元格中时显示弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9544145/