我在这个特殊问题上寻找解决方案。在Silverlight&上发现了一些JavaScript,但不是JavaFX。
现在关于这个问题:
我正在JavaFX中设计一个GUI,我在其中添加了两个按钮:ADD& REMOVE
我使用CSS设置了ADD按钮的样式,但它已经失去了它的悬停& onclick效果。为了更好地理解这个问题,我附上了几张图片
此按钮的代码如下所示
Message: [ERROR] Type:(Teradata DBS Error), Error: (<Table> must be empty for Fast Loading.)
以下代码:
VBox rightBox = new VBox(remBttn);
rightBox.setPadding(new Insets(10));
rightBox.setAlignment(Pos.CENTER);
remBttn.setPadding(new Insets(100,0,100,0));
remBttn.setPrefWidth(100);
remBttn.setOnAction(
new EventHandler<ActionEvent>()
{
public void handle(ActionEvent ae)
{
myLabel.setText("You Clicked The REMOVE Button");
}
});
remBttn.setFont(Font.font(20));
所以我想知道在不改变风格的情况下可以使用哪些方法或属性来恢复相同的效果。
答案 0 :(得分:3)
当您更改按钮的背景时,它将失去其默认的悬停和点击效果,所以我认为更好的方法是在css中设置悬停和点击效果。
顺便说一句,不要在代码中再次设置样式,只需在 src 文件夹中创建一个css文件,然后使用它将其链接到您的场景。
class MasterViewController: NSViewController {
var Photo: NSImageView!
@IBOutlet var scroll: NSScrollView!
override func viewDidLoad() {
super.viewDidLoad()
var imageRect: NSRect
self.Photo = NSImageView.init()
self.Photo.image = NSImage.init(named:"horizon")
imageRect = NSMakeRect(0.0, 0.0, self.Photo.image!.size.width, self.Photo.image!.size.height)
print("image size", imageRect)
self.Photo = NSImageView(frame: imageRect)
self.Photo.setBoundsSize(NSSize(width: imageRect.width, height: imageRect.height))
self.Photo.imageScaling = NSImageScaling.ScaleNone
self.scroll.setFrameSize(NSSize(width: imageRect.width,height: imageRect.width))
self.scroll.hasVerticalScroller = true
self.scroll.hasHorizontalScroller = true
self.Photo.setFrameSize(CGSize(width: imageRect.width,height: imageRect.width))
self.scroll.documentView = self.Photo
//print(self.scroll.documentView?.frame)
//self.scroll.setC contentSize = NSSize(width: 200, height: 2000)
//self.Photo.image = NSImage.init(named:"bezel")
//self.scroll.addSubview(self.Photo)
}
然后使用scene.getStylesheets().add(getClass().getResource("your_file_name.css").toExternalForm());
为您的添加按钮添加ID。然后
在 your_file_name.css 中引用它,如
addBttn.setId("addBttn");
希望这能解决你的问题。