Java'daki MouseEvents tuşları ve fare düğmeleri arasındaki değiştiricileri neden paylaşıyor?Neden Java'daki tüm Orta Tıklamalar Alt Değiştiriciye Sahip Olduğu Bildirildi mi?
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(800,600);
frame.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
System.out.println(e);
}
});
frame.setVisible(true);
}
pencereden (tek sol tık, tek orta tıklama ve bir sağ tıklama) şu çıktıyı göreceksiniz üç kez tıklarsanız:
aşağıdaki basit kod, düşünün. Eğer bakarsanız
java.awt.event.MouseEvent[MOUSE_CLICKED,(165,149),absolute(165,149),button=1,modifiers=Button1,clickCount=1] on frame0
java.awt.event.MouseEvent[MOUSE_CLICKED,(292,228),absolute(292,228),button=2,modifiers=Alt+Button2,clickCount=1] on frame0
java.awt.event.MouseEvent[MOUSE_CLICKED,(293,228),absolute(293,228),button=3,modifiers=Meta+Button3,clickCount=1] on frame0
, tüm orta tıklama aşağı alt anahtarını sahip olarak bildirilir ve tamam tıklama aşağı Meta tuşu sahip olarak rapor edildiğini göreceksiniz. Bu iyi belgelenmiştir ve MouseEvent için Javadocs'ta bu çakışmadan söz eden bir satır bile vardır. Ama sorum şu, neden böyle bildiriliyor? Bir orta tıklama için e.isAltDown() 'dan doğru geri dönmenin ardındaki sebep nedir?
Bu, bazı platformlarda Alt + Button1 ve Button2 arasında ayrım yapmayı zorlaştırır.
Benzer şekilde, Java'da platformlar arası fare davranışları tasarlamak için herhangi bir "En İyi Uygulama" kılavuzları var mı?
Macs. Veya tek tuşlu fareler kullanabilen diğer sistemler. – GSP