Java 如何使用基于getX和getY的mouselistener设置标签?
我得到了这个:label=newjlabel[9][9]。我想为标签设置一个新图标(当然,对于我单击的标签)。我还有一个面板(带gridlayout),里面有标签,是500x500 所以在mouselistener中,我知道,我可以使用getX()和getY()。在那之后,我怎么说我点击了哪一行和哪一列?我应该把面板分成几个小区域吗?我希望这个问题是可以理解的。我在这里读到问题,像这样,但我并没有真正找到答案 到目前为止,我写了以下内容:Java 如何使用基于getX和getY的mouselistener设置标签?,java,swing,labels,mouselistener,Java,Swing,Labels,Mouselistener,我得到了这个:label=newjlabel[9][9]。我想为标签设置一个新图标(当然,对于我单击的标签)。我还有一个面板(带gridlayout),里面有标签,是500x500 所以在mouselistener中,我知道,我可以使用getX()和getY()。在那之后,我怎么说我点击了哪一行和哪一列?我应该把面板分成几个小区域吗?我希望这个问题是可以理解的。我在这里读到问题,像这样,但我并没有真正找到答案 到目前为止,我写了以下内容: public void mous
public void mouseClicked(MouseEvent e){
int mouseX = e.getX();
int mouseY = e.getY();
int i = 0;
int j = 0;
URL url = Click.class.getResource("image.png");
ImageIcon img = new ImageIcon(url);
label[i][j] = new JLabel(img);
}
你说你有一个网格布局的面板。你还没有说出你给它起的名字,所以我们把它叫做
p
在您的mouseClicked
方法中,执行以下操作:
JLabel jlb = (JLabel) p.getComponentAt(e.getX(),e.getY());
现在做你想做的任何事情。“我有这个:标签…”此时,我会使用一个未修饰的
JButton
或JToggleButton
。。“URL URL=Click.class.getResource(“image.png”);
”。因为按钮具有内置的方法,可以在悬停、聚焦、按下等时在图像之间进行更改。不需要任何特定的侦听器。”…我如何说我单击了哪一行和哪一列?”如果侦听器已添加到每个标签中,您可以e.getSource()
要知道哪一个是活动的来源..谢谢。你能给我举一个getSource()的小例子吗,那么我该如何使用它呢?我同意Andrew的观点:不要试图通过使用布局来计算标签应该在哪里来确定鼠标应该在哪个标签上,而是为每个组件(即标签)提供侦听器让UI框架为您完成工作。事件源是您单击的组件。只需检查它是否是一个标签,在源代码上投射并设置新图标。