JAVA中如何获得当前鼠标选中的值

JAVA中如何获得当前鼠标选中的值,第1张

//类名 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()返回单元格的值

假如一个类叫Demo类,用于接受鼠标位置数据,

另外一个类叫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如何捕获和输出鼠标在屏幕上的点击呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9473799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存