我目前有一个按钮,当点击它时,会执行一个方法来创建一个带有加载多个图像的面板的jframe。如果多次单击此按钮,图像将继续添加到加载到jframe上的现有图像上。我应该使用什么代码,以便在加载jframe和元素后单击按钮,单击一次后,将不会添加任何其他代码。
非常感谢
答案 0 :(得分:2)
怎么样:
public void actionPerformed(ActionEvent evt) {
button.setEnabled(false);
// the other code that creates imgFrame
imgFrame.addWindowListener(new WindowAdapter() {
@Override public void windowClosing(WindowEvent evt) {
button.setEnabled(true);
}});
imgFrame.setVisible(true);
}
答案 1 :(得分:0)
不要在运行时创建大量JFrames,因为这些对象永远不会从Used JVM Memory
出现,直到当前存在JVM
实例
您已经CardLayout非常轻松地查看多个视图的问题(在这种情况下只有一个JFrame
)
将图片Icon/ImageIcon添加到JLabel
答案 2 :(得分:0)
在框架显示时禁用按钮,当框架关闭时,启用按钮。
public void actionPerformed(ActionEvent evt) {
final JButton finalButton = button;
button.setEnabled(false);
JFrame frame = new JFrame()
{
protected void processWindowEvent(WindowEvent e)
{
if (e.getID() == WindowEvent.WINDOW_CLOSING)
{
finalButton.setEnabled(true);
}
super.processWindowEvent(e);
}
};
frame.setVisible(true);
}
答案 3 :(得分:0)
我建议程序启动时布尔值为false,然后单击该按钮时,它会测试布尔值是否为false。如果它是假的,那么创建你想要的东西,然后将其设置为true。如果是真的,什么也不做,或提醒用户不要再点击那个按钮,或者那件事
答案 4 :(得分:0)
var app = angular.module('app', []);
# app.service(/**your injections*/) etc
# to access to the list of services + injections
app._invokeQueue #has following form:
[
[
'$provide',
'service',
Arguments[
'serviceName',
[
'$dependency1',
'$dependency2',
function(){}
],
]
]
]