gpt4 book ai didi

java - MouseEvent e 上 e.getSource() 的奇怪文本输出

转载 作者:行者123 更新时间:2023-12-01 22:16:53 24 4
gpt4 key购买 nike

我希望能够打印 MouseEvent e,我见过有人使用 getSource() 方法来执行此操作,但是我的方法没有给出我想要的确切输出。在其他代码中,人们打印 e.getSource(),它给出了图像的直接路径。

当我打印 e.getSource() 时:

javax.swing.JLabel[,224,7,23x20,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=file:/C:/Users/Sam/workspace/RS%20Calculator/bin/Hitpoints_icon.png,disabledIcon=,horizontalAlignment=C ENTER,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,verticalAlignment=CENTER,verticalTextPosition=CENTER] 

This output includes the image path that I want to access - but also lots of other random information.

How can I get to print only the image path? (/C:/Users/Sam/workspace/RS%20Calculator/bin/Hitpoints_icon.png)

    for(JLabel j : jLabelArray){
j = new JLabel(imageIcons[n]);

j.addMouseListener(new MouseAdapter(){

@Override
public void mouseClicked(MouseEvent e){
setSize(650,400);
System.out.println(e.getSource());
iconClicked(e);
}

});

add(j);
n++;
}

最佳答案

Java 返回的源是正确的,因为 MouseListener 被添加到 JLabel 而不是图像。如果您想要标签包含的 ImageIcon,则只需提取它即可。请注意,通常最好使用 mousePressed 方法而不是 mouseClicked。

@Override
public void mousePressed(MouseEvent e) {
JLabel label = (JLabel) e.getSource();
ImageIcon icon = label.getIcon();
// ....
}

作为副业,这让我很困扰:

setSize(650,400);

您通常应该避免尝试设置事物的大小。介意我问一下,你想用这个实现什么目的?

关于java - MouseEvent e 上 e.getSource() 的奇怪文本输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30812677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com