gpt4 book ai didi

java - 从匿名 Java 子类访问 "this"

转载 作者:行者123 更新时间:2023-12-01 10:11:35 26 4
gpt4 key购买 nike

我正在尝试修改 JToolBar 的行为,以允许它停靠到多个 JPanel。作为本练习的一部分,我需要重写方法 getDockingConstraint我尝试使用与原始类非常相似的定义来处理匿名类。

问题在于原始实现引用 this好几次,我认为应该没问题,但我一定错过了一些东西,因为 IDE 报告 this.dockingSensitivity对匿名类不可见。

这里有一个简单的更改吗,或者我应该跳过这种方法并只创建 BasicToolBarUI 的完整子类?或者也许有更好的方法来完全修改 JToolBar 的对接功能?

public MultiDockToolBar() {
setUI(new BasicToolBarUI(){
@Override
private String getDockingConstraint(Component var1, Point var2) {
if(var2 == null) {
return this.constraintBeforeFloating;
} else {
if(var1.contains(var2)) {
// Breaks here when using this.:
this.dockingSensitivity = this.toolBar.getOrientation() == 0?this.toolBar.getSize().height:this.toolBar.getSize().width;
if(var2.y < this.dockingSensitivity && !this.isBlocked(var1, "North")) {
return "North";
}

// Check East
// Check West
// Check South

}

return null;
}
}
});
}

最佳答案

dockingSensitivityBasicToolBarUI 类中的私有(private)字段。您将无法直接更改此设置。如果您仍然想编辑并面临潜在的后果,您可以使用 Java Reflections 库。

关于java - 从匿名 Java 子类访问 "this",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36096773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com