Итак, я делаю пользовательский интерфейс в плагине для Minecraft, и он добавляет кнопку для каждого игрока, а когда мы нажимаем кнопку, он пинает игрока.
Это цикл for:
for (final Player p : Bukkit.getOnlinePlayers())
{
System.out.println("Looping.");
final JButton b = new JButton();
b.setName(p.getName());
b.setText(p.getName());
b.setToolTipText("Kick " + b.getText());
b.setBackground(Color.GREEN);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (!b.getBackground().equals(Color.RED))
{
Bukkit.getScheduler().runTask(main, new Runnable() {
public void run() {
Bukkit.getPlayer(b.getText()).kickPlayer(jtf.getText());
b.setBackground(Color.RED);
}
});
}
}
});
System.out.println("Button added.");
f.add(b);
}
И скажем, на сервере 2 игрока: asd и dsa . Когда выполняется цикл for, он просто добавляет кнопку для asd , но печатает Кнопка добавлена (и Looping ) два раза.
( f - это публичная статическая JFrame , а jtf - это публичная статическая JTextField )
Итак ... Почему это не работает?