草庐IT

Final_action

全部标签

java - 将 Action 监听器添加到 jpanel

我想知道是否有任何方法可以将ActionListener添加到JPanel中?我可以将它们添加到JButtons,但JPanel似乎没有这样的方法。基本上,我在具有网格布局的JFrame中有一堆JPanel,我想知道是否有任何方法可以知道用户何时单击其中一个。非常感谢任何帮助! 最佳答案 Action监听器用于监听Action事件。当使用鼠标按下和释放按钮时(而不是单击时),或者使用键盘(空格键、助记键、键盘快捷键等)按下按钮时,按钮会触发Action事件。这是一个高级别的Activity。鼠标点击是一个更底层的事件,由MouseL

java - 抽象类或接口(interface)中的 public static final 字段

我有很多抽象类的子类,每个子类都声明了一个同名的publicstaticfinal字段。我在考虑在抽象父类(superclass)中有这个字段而不初始化它,并希望每个子类都被强制初始化它。我之所以想到这一点,是因为我的抽象类的所有子类都声明了一个名为UNIQUE_ID的公共(public)静态最终字符串字段,并且每个子类都必须声明一个具有完全相同名称的字段。我希望我的问题足够清楚,如果不是请告诉我。可以做一些或多或少等同于此的事情吗?编辑:添加代码:我的抽象类如下所示:publicabstractclassExperimentPanelModelextendsPanelizable{p

java - final 字段和匿名类

我对匿名类和最终字段的解释仍然不满意。有很多问题试图解释明显的问题,但我还没有找到所有问题的答案:-)假设如下代码:publicvoidmethod(finalinti,intj){finalintz=6;finalintx=j;intk=5;newRunnable(){publicvoidrun(){System.out.print(i);System.out.print(x);System.out.print(z);System.out.print(k);}};}由于“未最终的”k属性,无法编译此代码。我知道编译器可以在编译期间用声明的值替换z属性。当我搜索解决方案时,i和x究竟如

java - 有什么方法可以强制类在 Java 中具有 public static final 字段?

有没有办法强制Java中的类具有publicstaticfinal字段(通过接口(interface)或抽象类)?或者至少只是一个公共(public)领域?我需要以某种方式确保一组类有publicstaticfinalStringTYPE="...";在其中。 最佳答案 不,你不能。你只能强制他们有一个非静态的getter方法,它会为每个子类返回适当的值:publicabstractStringgetType();如果你需要将某物的每个子类映射到一个值,而不需要实例化它,你可以创建一个publicstaticMap,String>t

java - 从类定义中删除 final 会破坏向后兼容性吗?

我目前正在阅读JoshuaBloch的《EffectiveJava》,第17条是“为继承设计和记录,否则禁止继承”。作者建议默认禁止继承。在默认情况下将类声明为final是否安全,如果需要扩展类,在以后的版本中删除final关键字是否安全?它会破坏对使用先前版本编译的代码的向后兼容性吗?如果是这样,似乎更安全的做法是将所有类设为最终类,并且仅在有良好支持需求的情况下在未来的版本中将其删除。 最佳答案 它既不破坏二进制也不破坏源兼容性。这就是将类(class)设置为final是个好主意的原因之一;改变主意总是可以的。TheJavaLa

java - IntelliJ IDEA 将 final 添加到自动生成的 setter

我正在尝试将final关键字添加到IntelliJIDEA14中自动生成的setter中的参数。我知道我可以创建用于setter方法的当前模板的副本:#set($paramName=$helper.getParamName($field,$project))public###if($field.modifierStatic)static###endvoidset$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field,$pr

java - 为什么在大多数开源 java 项目中局部变量没有被声明为 final?

如果我查看OpenJDK、Hibernate或Apache中的java源代码,我还没有看到任何局部变量声明为final。这表明一些最广泛使用的Java软件库的开发人员:不要相信final关键字会提高可读性。不相信它会显着提高性能。为什么stackoverflow上的大多数贡献者都认为应该使用它(基于投票最高的回复)? 最佳答案 可能是因为输入单词final中的五个LONG字母很麻烦...为什么他们要经历写作的痛苦finalintx;打字次数是原来的两倍intx;?我们开发人员很懒,你知道的...:P

java - Java中静态final字段的初始化

publicclassMain{staticfinalintalex=getc();staticfinalintalex1=Integer.parseInt("10");staticfinalintalex2=getc();publicstaticintgetc(){returnalex1;}publicstaticvoidmain(String[]args){finalMainm=newMain();System.out.println(alex+""+alex1+""+alex2);}}有人能告诉我为什么打印:01010吗?我知道它是一个静态最终变量,它的值不应该改变,但有点难以理

Java Swing - JList 自定义单元格渲染 - 捕获 Action

每当我为JList创建自定义单元格渲染器时,我添加到其中的任何元素都不会响应操作。例如,如果我让单元格渲染器返回一个带有元素的JPanel,其中一个元素有一个ActionListener,它根本不会响应。这是为什么? 最佳答案 渲染器可能看起来像一个为单元格返回组件的工厂,但实际上它遵循享元渲染方法并使用相同组件渲染所有单元格(每次调用getListCellRendererComponent()都应该为特定单元格重新配置相同的组件实例并返回它,以便可以呈现单元格)。这样,您可以让JList(以及JTable和JTree)显示大量的单

java - 异常处理回滚 Action 是否在异常发生前完成?

假设我有一个这样的方法voidmyMethod(MyThingt)throwsMyException{t.foo="bar";if(t.condition()){thrownewMyException();}}如果异常被触发,t.foo的值是否恢复到之前的值?还是保持“bar”值? 最佳答案 MyThing对象上的foo属性的值不会因任何异常而恢复。在您的示例中,没有tryblock,但如果有的话,您可以在相应的catchblock中执行您自己类型的值回滚。try{t.foo="bar";doSomethingRiskyWhichM