Tag: 修饰符

检测MouseEvent上的Shift修改器是否因为单击摇摆而生成

我正在使用Java Swing在GUI应用程序中处理一些MouseEvent。 从现在开始我在mousePressed方法中分析鼠标事件,只是为了确定是否发生了左击或右击。 我的代码是: public void mousePressed(MouseEvent me) { if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK){ //left click }else if (me.getModifiers == InputEvent.BUTTON3_DOWN_MASK){ //right click } 现在我的应用程序变得越来越复杂了,我还需要检查鼠标左键单击时是否按下了Shift键。 我想做这样的事情: public void mousePressed(MouseEvent me) { if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK && me.isShiftDown()){ //left click } 现在这不起作用。 特别是如果我在按住SHIFT的同时单击左按钮isShiftDown返回true(rigth。我当时正在等待),但现在似乎修改器也被更改并且与BUTTON1_DOWN_MASK的比较失败。 me.getModifiers == InputEvent.BUTTON1_DOWN_MASK //failed..modifiers are changed 我究竟做错了什么? 我该如何修复我的代码?

在Java中使用可见性修饰符

class Orange{ Orange(){ } } 修饰符的用法 – 在本例中是package-private – 在类的前面和构造函数的前面有什么区别? 我认为构造函数前面的修饰符意味着允许实例化类Orange的实例。 但是课堂前的修饰语怎么样?

为什么在java中使用`transient`关键字?

我在java中的private修饰符之前有一个与transient关键字的使用相关的问题。 变量声明: transient private ResourceBundle pageResourceBundle; 当我用谷歌搜索它时,我在下面找到了这些文档,但它们正在谈论序列化。 实际上我的class级没有实现任何序列化。 欲了解更多信息: http://java91.blogspot.in/2017/01/why-does-java-have-transient-fields.html 我的class级看起来像这样: public class LoginViewModel extends AbstractViewModel { transient private ResourceBundle pageResourceBundle; @AfterCompose public void afterCompose(@ContextParam(ContextType.VIEW) Component view) { initializeLoginValues(); boolean timeout = BooleanUtils.toBoolean(getHttpServletRequest().getParameter(“timeout”)); if (timeout) { Messagebox.show(pageResourceBundle.getText(“MSG_SESSION_HAS_EXPIRED_PLEASE_LOGIN”), pageResourceBundle.getText(“LABEL_ALERT”), Messagebox.OK, Messagebox.ERROR); } view.getPage().setTitle(CsdcLicence.get().getApplicationName()); } 我有一些疑问。 1.为什么在私有变量之前使用transient关键字? 2.使用此关键字的目的是什么?