public class GlassActionListener{
JButton first;
JButton second;
@Override
public void actionPerformed(ActionEvent e) {
if(first == null)
{
first = (JButton) e.getSource();
}
else
{
second = (JButton) e.getSource();
// do something
// clean up
first = null;
second = null;
}
}
}
public class GUIControl {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
showGUI();
}
});
}
public static void showGUI() {
JFrame frame = new JFrame("MyFrame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
JButton glass1 = new JButton("glass1");
JButton glass2 = new JButton("glass2");
JButton glass3 = new JButton("glass3");
frame.getContentPane().add(glass1);
frame.getContentPane().add(glass2);
frame.getContentPane().add(glass3);
frame.pack();
frame.setVisible(true);
glass1.addActionListener(??);
glass2.addActionListener(??);
glass3.addActionListener(??);
// I want to store the first two clicks in these variables
from = "glassX";
to = "glassY";
puzzle.move(from, to);
}
L'utilisateur renversera de la soude entre les verres. Le premier JButton que l'utilisateur clique sur les trois disponibles détermine le "de" verre initial et le deuxième JButton que l'utilisateur clique sur les trois disponibles détermine le verre de destination "à".Détermination de la séquence de deux clics effectués par un utilisateur
Comment puis-je déterminer les deux JButtons spécifiques sur lesquels l'utilisateur a cliqué? Chaque fois que l'utilisateur clique sur deux JButtons sur trois, je veux stocker la chaîne associée à ces deux JButtons dans une variable "from" et "to".
Y at-il un moyen de le faire?
Pouvez-vous s'il vous plaît me montrer la mise en œuvre si je veux créer une classe simplement appelée JButtonGlassActionListener et ajouter des instances de cette classe à chaque DButton? –
faites comme ci-dessus, mais déplacez simplement le contenu de l'écouteur vers votre nouvelle classe – Igor
Ok mais que dois-je faire dans la partie "\\ do something"? –