- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,所以我使用以下代码在 J 面板上动态制作了一行具有空布局的 J 按钮:
int Y = 100;
int X = 100;
for(x=1, x<=20, x++){
button = new JButton(x);
button.setLayout(null);
button.setSize(100, 100);
button.setLocation(X,Y);
button.setVisible(true);
panel.add(button);
X += 100;
//action listener
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//should print out the location of the button that was clicked
System.out.println(button.getLocation());
}
});
}
当我按下“does”按钮时,我希望它打印其在面板上的位置,但它却打印出每次添加的最后一个按钮的位置,请帮忙。
请注意,我是编程新手
最佳答案
每次运行循环时,button
变量都会被重新定义,因此当您最终调用 actionPerformed
方法时,您正在读取最后一个按钮的数据。循环在任何事件发生之前完成,并保存在 button
变量中创建的最后一个按钮的引用。
您需要从事件对象引用按钮
,因为它包含对作为事件源的按钮的引用:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//should print out the location of the button that was clicked
System.out.println( ((JButton)e.getSource()).getLocation() );
}
});
addActionListener
方法被调用 20 次,但 actionPerformed
方法被异步调用,并且仅在发生操作事件(例如:按钮单击)时调用。 ActionEvent 对象包含有关事件的信息,其中包括事件源,即您的按钮。
关于java - java 中动态创建的 JButton 的 getLocation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22133721/
我的代码应该返回设备的位置,以便放置图钉。 由于某种原因,当多次调用它时,它总是返回第一次调用时返回的值。 代码中的打印返回第一个值。我可能忽略了一些显而易见的事情,但我无法弄清楚是什么。 func
local function ThisIsAFunction() local test1 = "im a local var" local asd = "im also a local
我编写了一个非常简单的应用程序,它向 LocationProvider 询问位置并将其打印到 System.out。这在模拟器中效果很好。但是,当我在我的黑莓设备上运行它时,对 getLocation
我正在使用 symfony2 开发一个应用程序。我面临本地化问题。我想在学说生命周期的 postLoad 事件中设置,但可以找到一种方法来做到这一点。我正在使用路线方法来设置我的本地例如: http:
大家好,我需要在我的网站上显示一个谷歌地图,其中包含我的家标记(我使用商店位置)并以用户位置为中心。我尝试: var myCenter = new google.maps.LatLn
我正在使用 symfony2 开发一个应用程序。我面临本地化问题。我想在学说生命周期的 postLoad 事件中设置,但可以找到一种方法来做到这一点。我正在使用路线方法来设置我的本地例如: http:
我想获取设备的经度和纬度。我使用 location api 来获取经度和纬度,现在我面临的问题是我无法在按钮单击事件中调用 getLocation() 方法。它抛出一个错误,因为无法从事件线程调用 g
我的公司正在尝试将浏览器从 IE8 更新到 IE11。他们希望我的团队能够自动进行测试,以确定与 IE8 相比,他们的应用程序的 Web 元素在 IE11 中是否发生了变化。 我做了一些researc
这个函数有两个不同的引用: 一个用 const 声明的 here ; 还有一个没有 const here ; 哪个是正确的? 最佳答案 标准说 (27.5.3.3) 定义应该是: locale get
我正在使用 Equinox OSGi 实现。当我检索一个包并询问它的位置(getLocation() 方法)时,返回的字符串以“initial@reference”为前缀。 OSGi 4.3 规范没有
我正在用 OpenLayers 编写 map (4.6.5) 和 Angular (6).我正在使用法语 API在这样的请求结束时返回 GeoJSON 文件: https://api-adresse.
我在 Activity 中使用 StreetViewPanorama View 。 最初我使用设置 StreetViewPanorama 的位置。 streetViewPanorama.setPosi
在运行我的 Protractor 测试时,我正在尝试获取页面上元素的 x 和 y 值。 it('should keep the left nav links floating along with t
我正在使用 Android 地理编码通过 Address.getLocality() 获取当前城市。它运行良好,直到最近它似乎经常为本地返回 null。 这是一个例子: try { Geoco
本文整理了Java中org.geoserver.wfs.WFSException.getLocator()方法的一些代码示例,展示了WFSException.getLocator()的具体用法。这些代
本文整理了Java中javolution.xml.stream.XMLStreamReader.getLocation()方法的一些代码示例,展示了XMLStreamReader.getLocatio
我正在开发一个应用程序,试图获取当前位置。但是,即使我创建了一个新线程,也会收到错误“无法从事件线程调用 getLocation() 方法”。谁能帮我吗? 这是我的代码 Thread t = new
我使用 rails 3.2.6、ruby 1.9.3 和 mongoid gem 3.0。 我想显示数据库条目的 created_at 字段,但收到以下错误: undefined method `ge
我找不到 FileSystem.getLocal() 类的 jar 文件; FileSystem fs = FileSystem.get(conf); Path clusters = new Path
好的,所以我使用以下代码在 J 面板上动态制作了一行具有空布局的 J 按钮: int Y = 100; int X = 100; for(x=1, x<=20, x++){ button =
我是一名优秀的程序员,十分优秀!