Java Netbeans中的JTable右键单击弹出菜单
我想在NetBeans IDE中将右键单击弹出菜单添加到JTable中(似乎是一项简单的任务…哈哈) 我让它在一定程度上发挥了作用Java Netbeans中的JTable右键单击弹出菜单,java,netbeans,netbeans6.8,Java,Netbeans,Netbeans6.8,我想在NetBeans IDE中将右键单击弹出菜单添加到JTable中(似乎是一项简单的任务…哈哈) 我让它在一定程度上发挥了作用 向窗体中添加弹出菜单 将菜单项添加到弹出菜单 转到JTable的属性 单击“绑定”选项卡 将ComponentPopupMenu值设置为my popupmenu 但这只是部分有效。 现在,当我右键单击表格时,会弹出菜单,但JTable中选定的行不会更改。因此,在调用menuitem的actionPerformed时,我不知道单击了JTable中的哪一行 我怎么能得到
谢谢你的帮助 为什么要依赖IDE为您生成代码?当您移动到另一个IDE并且必须学习如何为该IDE执行操作时,会发生什么情况?了解如何编写自己的代码,这样IDE就无关紧要了:
table.addMouseListener( new MouseAdapter()
{
public void mouseReleased(MouseEvent e)
{
if (e.isPopupTrigger())
{
JTable source = (JTable)e.getSource();
int row = source.rowAtPoint( e.getPoint() );
int column = source.columnAtPoint( e.getPoint() );
if (! source.isRowSelected(row))
source.changeSelection(row, column, false, false);
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
});
希望我能为Netbeans回答这个问题。。。我希望这能帮助别人
private void jTableDataOrSomethingMouseReleased(java.awt.event.MouseEvent evt) {
if (evt.isPopupTrigger())
{
JTable source = (JTable)evt.getSource();
int row = source.rowAtPoint( evt.getPoint() );
int column = source.columnAtPoint( evt.getPoint() );
if (!source.isRowSelected(row)) {
source.changeSelection(row, column, false, false);
}
jPopupMenu.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
int[] rows = jTableDataOrSomething.getSelectedRows();
for (int row : rows) {
boolean j = true;
try {
modelRow = jTableDataOrSomething.convertRowIndexToModel(row);
//do something with the selected rows...
jTableDataOrSomething.repaint();
享受对于除了GUI以外的几乎所有东西,我都同意你的看法,但是用代码设计界面总是比通过拖放来设计相同的界面花费更长的时间。不过,感谢您的代码示例,这两行代码实际上解决了我的问题。JTable source=(JTable)e.getSource();int row=source.rowAtPoint(例如getPoint());我不知道你能从一个点上吵架。