//类名 MyMouseLister
import javaawteventMouseEvent;
import javaawteventMouseListener;
public class MyMouseLister implements MouseListener{
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
}
//类名OnMouseOver
import javaawtGridLayout;
import javaawteventMouseEvent;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJPanel;
public class OnMouseOver extends MyMouseLister{
private JLabel test1;
private JLabel test2;
private JLabel test3;
private JLabel test4;
private JPanel p;
private JFrame f;
public OnMouseOver(){
test1 = new JLabel("test1text");
test1addMouseListener(this);
test2 = new JLabel("test2text");
test2addMouseListener(this);
test3 = new JLabel("test3text");
test3addMouseListener(this);
test4 = new JLabel("test4text");
test4addMouseListener(this);
p = new JPanel(new GridLayout(2,2));
padd(test1,0);
padd(test2,1);
padd(test3,2);
padd(test4,3);
f = new JFrame("Test");
fadd(p);
fsetVisible(true);
fsetBounds(300, 200, 300, 200);
fsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
}
//事件可以自己换
public void mouseEntered(MouseEvent e) {
if(egetSource() == test1){
Systemoutprintln(test1getText());
}else if(egetSource() == test2){
Systemoutprintln(test2getText());
}else if(egetSource() == test3){
Systemoutprintln(test3getText());
}else if(egetSource() == test4){
Systemoutprintln(test4getText());
}
}
public static void main(String[] args) {
new OnMouseOver();
}
}
希望能帮到你虽然这个是JLabel但是道理是相通的,你看看就明白了。
//附上 *** 作表格的方法:
getSelectedColumn()返回列索引
getSelectedRow()返回行索引
getValueAt()返回单元格的值
另外一个类叫DemoFrame类,是窗口类, 用于获取鼠标在窗体的位置, 那么当鼠标位置发生改变时就把数据传递给Demo类的实例即可, 也就是说最简单的方案就是让DemoFrame里有Demo的实例
参考代码如下
import javaawt;import javaawtevent;
import javaxswing;
class Demo {
private int mx, my;
public Demo() {
}
//接受鼠标位置
public void setMxAndMy(int mx,int my) {
thismx=mx;
thismy=my;
}
//打印鼠标位置信息
public void print() {
Systemoutprintln("鼠标的位置 "+mx+","+my);
}
@Override
public String toString() {
return "Demo [mx=" + mx + ", my=" + my + "]";
}
}
//public 类 继承自JFrame ,实现了MouseMotionListener 接口
public class DemoFrame extends JFrame implements MouseMotionListener {
Demo demo;
JLabel jl;//用于窗体内部显示坐标
public DemoFrame() {
demo=new Demo();
jl=new JLabel("");
add(jl);
addMouseMotionListener(this);
setSize(800, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
EventQueueinvokeLater(new Runnable() {
public void run() {
new DemoFrame()setVisible(true);
}
});
}
public void mouseDragged(MouseEvent e) {
}
public void mouseMoved(MouseEvent e) {
demosetMxAndMy(egetX(), egetY());//传输坐标给demo
demoprint();//让demo执行打印方法
jlsetText(demotoString());
//egetXOnScreen();//获取鼠标在屏幕上的位置
//egetYOnScreen();
}
}
这个也不是50分能解决的问题!
纯JAVA和程序目前没有更好的解决办法,目前JAVA可以知道鼠标当前位置,以及鼠标某处的象素颜色等有限的信息,对于鼠标的行为是没有办法捕捉的,不过ROBOT类可以驱动鼠标和键盘做一些事。
如果想达到楼主的要求,看来JNI是比较可行的办法!
NOKIA的非S60机子真的非常不人性化 S60与S40的区别很大,有点难形容 S60真的可以做到很多很多,而S40有局限性 即使5310和6120价钱差不多,但是我还是选择了6120 6120不仅强大,而且不像5310那样靠时尚音乐这个噱头而赢得掌声的 6120掉漆的话多多少少会有点,不过我的只是在导航键那里而已,我觉得完全可以自己涂点东西解决。通话音量是可以调节的,我并不觉得小 还有,5310的电池很小,不耐用
有的,你可以去继承MouseEvent这个类,里面有个方法叫做,getXOnScreen()和getYOnScreen(),
getXOnScreen
public int getXOnScreen()
返回事件的绝对水平 x 坐标。在虚拟设备多屏幕环境中,桌面区域可以跨越多个物理屏幕设备,这些坐标相对于虚拟坐标系。否则,这些坐标相对于与
Component 的 GraphicsConfiguration 关联的坐标系。
返回:
x 表示绝对水平位置的整数。
getYOnScreen
public int getYOnScreen()
返回事件的绝对垂直 y 坐标。在虚拟设备多屏幕环境中,桌面区域可以跨越多个物理屏幕设备,这些坐标相对于虚拟坐标系。否则,这些坐标相对于与
Component 的 GraphicsConfiguration 关联的坐标系。
返回:
y 表示绝对垂直位置的整数。
这个就是你在窗体(Frame里的位置了),希望能帮到你。
以上就是关于JAVA中如何获得当前鼠标选中的值全部的内容,包括:JAVA中如何获得当前鼠标选中的值、java中如何将鼠标监视器获取的位置x,y传输到另一个类中,利用x,y做一些事情、JAVA如何捕获和输出鼠标在屏幕上的点击呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)