【发布时间】:2015-04-17 15:56:01
【问题描述】:
我在我的 Java Swing 应用程序中有一个 JTable,并且总体上一切正常。我在JTable 上添加了MouseListener,因此每当我尝试右键单击表中的一行时,我都可以捕获事件并运行一个方法。但是,我想做的是
- 选择单元格
- 得到它的价值
- 然后调用方法。
为此,我当前必须左键单击该行,然后右键单击它。是否可以通过单击鼠标右键立即选择行/单元格?
到目前为止,这是我的代码:
public class MyMouseAdapterTableArticoli extends MouseAdapter {
public void mouseClicked(MouseEvent me) {
JTable t = (JTable)me.getSource();
JMenuItem menuItem;
rowPopUp = t.rowAtPoint(me.getPoint());
if ((me.getClickCount() == 2) && (me.getButton() == MouseEvent.BUTTON1)) {
pulisciTableArtRappre();
if((listaMagazzino != null) && (listaMagazzino.size() > 0)) {
pulisciTableArtMagazzino();
}
popolaCampi(rowPopUp);
} else if (me.getButton() == MouseEvent.BUTTON3) {
JPopupMenu popup = new JPopupMenu();
menuItem = new JMenuItem("Mostra Prezzi di Acquisto");
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mostraPrezziAcquisto(rowPopUp);
}//fine metodoVoid
});//fine actionlistener
popup.add(menuItem);
MouseListener popupListener = new PopupListener(popup);
table.addMouseListener(popupListener);
}//fine else e if
}
public void mousePressed(MouseEvent e) {
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);
}
}
【问题讨论】:
标签: java swing jtable right-click