您的位置:首页 > 其它

鼠标添加右键菜单

2015-04-10 20:03 309 查看
鼠标右键弹出菜单

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Point;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTable;
import javax.swing.table.TableColumnModel;

public class SimpleTableTest extends JFrame{

Object tip;

protected JTable table,table1;

JMenuItem jMenuItem1 = new JMenuItem();
JMenuItem jMenuItem2 = new JMenuItem();

JPopupMenu popup = new JPopupMenu();

public SimpleTableTest() {

Container pane = getContentPane();

pane.setLayout(new BorderLayout());

TableValues tv = new TableValues();

table =new JTable(tv);

//table1 = new JTable(new javax.swing.table.DefaultTableModel(4, 5));

pane.add(table,BorderLayout.CENTER);

//pane.add(table1,BorderLayout.SOUTH);

table.addMouseListener(new java.awt.event.MouseAdapter() {

public void mousePressed(MouseEvent e) {

Point point = e.getPoint();

int x = table.rowAtPoint(point);

int y = table.columnAtPoint(point);

System.out.println("x:"+x);
System.out.println("y:"+y);

Object tip = table.getValueAt(x, y);

if(tip.toString().equalsIgnoreCase("1")){

jMenuItem1.setEnabled(false);
pane_mouselistener(e);
}else{
jMenuItem1.setEnabled(true);
pane_mouselistener(e);
}

}
});

addMenu();

}

private void pane_mouselistener(MouseEvent e) {
// TODO Auto-generated method stub
int mods = e.getModifiers();

if ((mods & InputEvent.BUTTON3_MASK) != 0)

{

popup.show(this, e.getX(), e.getY());

}

}

private void addMenu(){

jMenuItem1.setText("复制");
jMenuItem2.setText("粘贴");

popup.add(jMenuItem1);
popup.add(jMenuItem2);

}

public static void main(String[] args){

SimpleTableTest stt = new SimpleTableTest();

stt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

stt.setSize(400, 200);

stt.setVisible(true);

}

}


package tableTest;
import javax.swing.table.AbstractTableModel;

import java.awt.*;

import javax.swing.*;

public class TableValues extends AbstractTableModel{

public int[][] values = {{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{4,5,6,7,8}};

String[] columnNames = {"English","Japanese","aa","bb","cc"};

public int getRowCount() {

return values.length;

}

public int getColumnCount() {

return values[0].length;

}

public Object getValueAt(int rowIndex, int columnIndex) {

return values[rowIndex][columnIndex];

}

public String getColumnName(int column) {
return columnNames[column].toString();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: