在Swing应用程序中,我有许多子面板,每个子面板都听一个JSlider.周围的父面板也会监听所有子面板.为了在下面的示例中获得一致的结果,我必须首先添加父级,然后添加本地侦听器.考虑到本文中规定EventListenerList和解释的顺序,这是有道理的.我可以依赖该订单,还是应该安排发送不同的活动?
class SubPanel extends JPanel implements ChangeListener {
private final JSlider slider = new JSlider();
private final JLabel label = new JLabel();
private final String name;
private float value;
public SubPanel(String name, float value, ChangeListener parent) {
this.name = name;
this.value = value;
...
slider.addChangeListener(parent);
slider.addChangeListener(this);
}
...
}
Run Code Online (Sandbox Code Playgroud)
附录:讨论EventListenerList似乎是实施建议而不是保证.pstanton建议的链接方法更可靠地强制执行正确的顺序.例如,SubPanel的ChangeListener可以简单地将事件转发到父.
@Override
public void stateChanged(ChangeEvent e) {
...
parent.stateChanged(e);
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个性能增强项目.我有一个疑问,当我们在一个过程中,我们倾向于追踪DTO和所用实体的当前状态.因此,为此,我们在所有POJO中都包含了toString()方法.我现在用以下三种不同的方式实现toString(): -
public String toString() {
return "POJO :" + this.class.getName() + " RollNo :" + this.rollNo + " Name :" + this.name;
}
public String toString() {
StringBuffer buff = new StringBuffer("POJO :").append(this.class.getName()).append(" RollNo :").append(this.rollNo).append(" Name :").append(this.name);
return buff.toString();
}
public String toString() {
StringBuilder builder = new StringBuilder("POJO :").append(this.class.getName()).append(" RollNo :").append(this.rollNo).append(" Name :").append(this.name);
return builder .toString();
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我找出哪一个是最好的,应该用于提高性能.
我是第一次使用EnumMap,并且不明白参数传递实际上在做什么.据我所知,它只是"K.class",其中K是地图键.这很好用,但我还没有在Java的其他任何地方看到这个,我不清楚它在构造中扮演的角色.
我想这是一个理论问题,因为代码运行:"K.class"参数意味着什么,以及EnumMap需要什么?