在对我的答案之一的评论回复中,Hovercraft说
No, your suggestion will make things worse really, since by using this as the ActionListener, you’re suggesting that he make his View also a Control, something that shouldn’t be done in anything other than “toy” programs.
作为一个新手,我一直在使用“ this”,但不清楚为什么这么劝阻.有人可以解释/阐述《气垫船》的答案还是提供另一个?
评论 –
https://stackoverflow.com/questions/18021509/how-can-i-call-method-with-a-string/18021674#18021674
解决方法:
这是因为Swing遵循MVC模式.如果将Controller和View委派给一个类,则出问题了.还阅读了大约Single Responsability Principle,一堂课只应该对一件事情负责,否则,看来您的课就像是做一切的神.
代替
public class MyJFrame extends JFrame implements KeyListener{
MyJFrame(){
this.addKeyListener(this); // sounds awful
}
}
使用这样的东西:
public class MyFrameView {
private JFrame frame;
MyFrameView(){
frame = new JFrame();
frame.addKeyListener(new MyKeyListener());
}
}
public class MyKeyListener implements KeyListener{
}
标签:actionlistener,swing,java 来源: https://codeday.me/bug/20191030/1968796.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。