Programımda sütun içine düzenlenmiş 4 tane düğme listesi var. Şu an itibariyle bir butonun tıklanıp tıklanmadığını kontrol eden 4 döngüye sahibim. Belirli bir düğmenin tıklanıp tıklanmadığını görmek için her listeden bir döngü tıklatılıp tıklanmadığını kontrol etmenin basit bir yolu var mı? "ActionSource == anybutton" olup olmadığını kontrol etmenin daha kolay bir yolu olmalıdır ...Java eylem dinleyicisi
cevap
Kullanım anonim iç sınıflar:
JButton button = new JButton("Do Something");
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("Do Something Clicked");
}
});
Veya mantık ilgili olup olmadığını, o zaman bir dinleyici paylaşabilirsiniz:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ButtonCalculator extends JFrame implements ActionListener
{
private JButton[] buttons;
private JTextField display;
public ButtonCalculator()
{
display = new JTextField();
display.setEditable(false);
display.setHorizontalAlignment(JTextField.RIGHT);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(0, 5));
buttons = new JButton[10];
for (int i = 0; i < buttons.length; i++)
{
String text = String.valueOf(i);
JButton button = new JButton(text);
button.addActionListener(this);
button.setMnemonic(text.charAt(0));
buttons[i] = button;
buttonPanel.add(button);
}
getContentPane().add(display, BorderLayout.NORTH);
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
setResizable(false);
}
public void actionPerformed(ActionEvent e)
{
JButton source = (JButton)e.getSource();
display.replaceSelection(source.getActionCommand());
}
public static void main(String[] args)
{
UIManager.put("Button.margin", new Insets(10, 10, 10, 10));
ButtonCalculator frame = new ButtonCalculator();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
Her düğme için tek bir dinleyici ve her düğme için bir ortak dinleyici ekleyebilirsiniz. "Dinlenen herhangi bir tuşa" yanıt vermek için ortak dinleyiciyi programlayın. Her düğme için
herhangi birine her bir düğmesini, bu tetikler actionPerformed
yöntemi, hangi düğmeye bastığınıza bakılmaksızın.
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if (source instanceof JButton) System.out.println("You clicked a button!");
}
Halen açılan kutular ve menü öğeleri gibi dinleyicilere sahip başka bir nesneyim var. Belirli bir görevi yerine getirmek için sadece düğmelere ihtiyacım var, bir dinleyici ile tüm öğeleri değil. – mbreen
@mbreen Güncellenmiş yanıtlara bakın. – fireshadow52
- 1. Bir eylem dinleyicisi, iki JButtons
- 2. Java ile bir veritabanı dinleyicisi nasıl oluşturulur?
- 3. İçerik dinleyicisi aracılığıyla olay dinleyicisi kaldırılamıyor
- 4. C# dinleyicisi tanıtıcı
- 5. Android, XML'de Checkbox dinleyicisi?
- 6. olay dinleyicisi pencereden ayarlanmış bir olay dinleyicisi kaldırmak gerekir
- 7. Symfony2'nin olay dinleyicisi
- 8. Bir Olay Dinleyicisi Ekleme
- 9. Javascript olay dinleyicisi performansi
- 10. CSS Özellik Değişikliği Dinleyicisi
- 11. İnternet dinleyicisi Android örneği
- 12. MediaPlayer ile OnCompletion dinleyicisi
- 13. ViewPropertyAnimator'ın dinleyicisi kaldırılamıyor
- 14. Android Özel Etkinlik Dinleyicisi
- 15. EJB modülü başlatma dinleyicisi
- 16. eylem Bu Eylem Yöntemi sahip
- 17. Symfony2 özel olay dağıtıcısı ve dinleyicisi
- 18. Durum dinleyicisi asmack içinde çalışmıyor
- 19. EXTJS 4 - Genel istisna dinleyicisi
- 20. JavaFX Zaman Çizelgesi Döngü Dinleyicisi
- 21. Swift extension olay dinleyicisi property
- 22. Açısal 2 yönlendirici olay dinleyicisi
- 23. Neden bir anahtar dinleyicisi ekleyemiyorum?
- 24. Görüntüde dokunma dinleyicisi nasıl uygulanır?
- 25. Node.JS EventEmitter Dinleyicisi Fonksiyonu Olmalıdır
- 26. C# Async UDP dinleyicisi SocketException
- 27. Neden keydown dinleyicisi IE'de çalışmıyor
- 28. Hiçbir eylem eylem ile işlenecek faaliyet bulundu.DIAL
- 29. Eylem/rota düzeltmek için eylem yönlendirildi mi?
- 30. çıkış $ eylem?
Camickr gözümde bir Salıncak yetkilisidir. – duffymo
Bir dinleyici paylaşın ... güzel, tavsiye için teşekkürler! Bu mükemmel çalıştı! – mbreen