Итак, это не очень хороший код, но в основном мне нужно заставить более сложную версию этой программы ждать щелчка внутри цикла while. Любая помощь в создании метода waitForClick() ниже была бы потрясающей. Все, что должно произойти, это то, что пользователь щелкнет JButton, и программа установит для условия значение false и напечатает «Готово».
GUI открытого класса расширяет JFrame {
private static final long serialVersionUID = 3560258176733156660L;
public static void main(String[] args) {
new GUI().setVisible(true);
}
private JButton finish;
private boolean condition;
public GUI() {
condition = true;
setLayout(null);
setSize(250, 120);
setTitle("Silly");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
finish = new JButton("Finish");
finish.setBounds(50, 40, 100, 30);
finish.addMouseListener(new MouseClickListener());
add(finish);
doThings();
}
public void doThings() {
while (condition) {
waitForClick();
}
System.out.println("Done");
}
public void waitForClick() {
// Need this method to make program wait for the Listener below, don't know how to do this!
}
public class MouseClickListener implements MouseListener {
public void mouseClicked(MouseEvent arg0) {
if (arg0.getSource()==finish) {
condition = false;
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
}