Создается бесконечное кол-во окон в Java Swing
Егор Климчик
Создается бесконечное кол-во окон в Java Swing
Если я компилирую этот код, то у меня создается бесконечное количество окон и все зависает, как исправить?
package SimpleClicker;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
public class Clicker {
long clickscore;
JButton click = new JButton("Click");
JButton buy = new JButton("Buy Automatic Click");
JLabel score = new JLabel("Score: " + clickscore);
JPanel windowContent = new JPanel();
Clicker() {
JPanel pl = new JPanel();
GridLayout gl = new GridLayout();
pl.setLayout(gl);
pl.add(score);
windowContent.add("North",score);
JPanel pl1 = new JPanel();
GridLayout gl1 = new GridLayout();
pl1.setLayout(gl1);
pl1.add(click);
windowContent.add("Center",pl1);
Window frame = new JFrame("SimpleClicker");
((JFrame) frame).setContentPane(windowContent);
frame.pack();
frame.setSize(300,100);
frame.setVisible(true);
ClickerEngine clickEngine = new ClickerEngine(this);
click.addActionListener((ActionListener) clickEngine);
}
public static void main(String[] args) {
new Clicker();
}
}
package SimpleClicker;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
public class ClickerEngine {
Clicker window = new Clicker();
ClickerEngine(Clicker window) {
this.window = window;
}
public void actionPerformed(ActionEvent e) {
JButton clickedButton = (JButton) e.getSource();
String clickedButtonLabel = clickedButton.getText();
if(clickedButtonLabel.equals("Click")) window.clickscore++;
}
}
Ответы:
Special L.O.R. forces
Clicker создает ClickerEngine который создает Clicker который ...
|