如何取回JavaFX中按钮的onclick效果

时间:2015-11-13 12:31:20

标签: java css user-interface button javafx

我在这个特殊问题上寻找解决方案。在Silverlight&上发现了一些JavaScript,但不是JavaFX。

现在关于这个问题:

我正在JavaFX中设计一个GUI,我在其中添加了两个按钮:ADD& REMOVE

我使用CSS设置了ADD按钮的样式,但它已经失去了它的悬停& onclick效果。为了更好地理解这个问题,我附上了几张图片

  1. 如果您在此处查看this照片,您会看到点击“删除”按钮后,会稍微改变其颜色,以显示当前正在点击的效果。此外,当光标悬停在光标上时,会比通常的光线稍微亮一些
  2. 此按钮的代码如下所示

    Message: [ERROR] Type:(Teradata DBS Error), Error: (<Table> must be empty for Fast Loading.)
    
    1. 但是,如果你在这里查看this照片,你会注意到悬停并点击它没有效果。我对CSS知之甚少,所以我从一个随机网站复制了一段代码来设置我的按钮样式。但我认为这就是我把它弄糟的地方。
    2. 以下代码:

      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));
      

      所以我想知道在不改变风格的情况下可以使用哪些方法或属性来恢复相同的效果。

1 个答案:

答案 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");

希望这能解决你的问题。