如何使标签后面的按钮可以点击?
按键
Button btn = new Button();
//TODO: button's main function, like onPressed, onReleased etc. here...
Run Code Online (Sandbox Code Playgroud)
自定义标签
CustomLabel sp = new CustomLabel("Some texts here"));
//TODO: custom label's main function, like a translucent background etc here...
//main purpose of this is to overlay the button
Run Code Online (Sandbox Code Playgroud)
主要窗格
StackPane mainPane = new StackPane();
mainPane.getChildren.addAll(btn, sp);
Run Code Online (Sandbox Code Playgroud)
这样,自定义标签覆盖的区域变得不可点击.
有没有让按钮仍然可点击,即使覆盖,例如?或者还有另一种方法吗?有点像设置标签在点击时不可见?
编辑:回答Itamar Green的问题..
通过使用此链接中显示的示例:鼠标事件在基础层上被忽略,它似乎仍然无法正常工作.堆叠在图层下的按钮仍然无法点击.
sp.setPickOnBounds(false);
Run Code Online (Sandbox Code Playgroud) 可以说我有一个简单的警报。
Alert a = new Alert(AlertType.NONE);
CustomLabel lbl = new CustomLabel("Testing");
CustomButton ok = new CustomButton("OK");
FlowPane fp = new FlowPane();
fp.getChildren().addAll(lbl,ok);
alert.getDialogPane().setContent(fp);
alert.initStyle(StageStyle.TRANSPARENT);
Run Code Online (Sandbox Code Playgroud)
然后,我希望此警报始终显示在我正在显示的任何屏幕上方,我该怎么做?
将主页设置为。
mainStage.setAlwaysOnTop(false); //does not work
Run Code Online (Sandbox Code Playgroud)
我的主警报和警报警报都在同一线程上。
意思是,在运行我的主程序时,它将检查某些内容,然后在某些内容不正确时弹出警报。
我想将具有相同属性的 2 个对象合并到一个数组中。
以此为例:
object1 = {"id":1,
"name":name1,
"children":[{"id":2,"name":name2}]
};
object2 = {"id":3,
"name":name3,
"children":[{"id":4,"name":name4}]
};
object3 = {"id":1,
"name":name1,
"children":[{"id":6,"name":name6}]
};
var result = Object.assign(result,object1,object2,object3);
Run Code Online (Sandbox Code Playgroud)
预期结果:
JSON.stringify([result]) =[
{"id":1,
"name":name1,
"children":[{"id":2,"name":name2},
{"id":6,"name":name6}]
},
{"id":3,
"name":name3,
"children":[{"id":4,"name":name4}]
}
]
Run Code Online (Sandbox Code Playgroud)
实际结果:
JSON.stringify([result]) = [
{"id":3,
"name":name3,
"children":[{"id":4,"name":name4}]
}
]
Run Code Online (Sandbox Code Playgroud)
似乎 Object.assign() 不是要走的路......因为它会覆盖,我不希望它覆盖,我希望它们合并。有没有正确的方法来做到这一点?
如何将使用JAVAFX创建的自定义标签嵌入到现有swing的JPanel中?
例如
自定义JavaFX标签:
public class CustomJavaFXLabel extends Label{
public CustomJavaFXLabel(){
super();
setFont("blah blah blah");
setText("blah blah blah");
/*
*and so on...
*/
}
}
Run Code Online (Sandbox Code Playgroud)
现有的JPanel在摇摆
public class SwingApp(){
private JPanel jpanel;
public SwingApp(){
jpanel = new JPanel();
jpanel.add(new CustomJavaFXLabel()); //this line does not work
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
The method add(Component) in the type Container is not applicable for argument (CustomJavaFXLabel)
Run Code Online (Sandbox Code Playgroud)
我理解为此,我最好使用JLabel来创建自定义标签.但是,由于某些限制,我需要使用FX作为自定义标签.
谢谢.