VuMeterSkin.java 文件源码

java
阅读 23 收藏 0 点赞 0 评论 0

项目:FXImgurUploader 作者:
private void initGraphics() {                
    hBox = new HBox();        
    hBox.getStyleClass().setAll("vu-meter");
    hBox.setSpacing(getSkinnable().getLedSpacing());        

    vBox = new VBox();
    vBox.getStyleClass().setAll("vu-meter");
    vBox.setSpacing(getSkinnable().getLedSpacing());        

    leds = FXCollections.observableArrayList();
    for (int i = 0 ; i < getSkinnable().getNoOfLeds() ; i++) {
        Region led = new Region();                    
        led.setOnMouseClicked(new WeakEventHandler<>(event -> active = !active));
        led.setOnMouseEntered(new WeakEventHandler<>(event -> handleMouseEvent(event)));                                    
        if (getSkinnable().getSections().isEmpty()) {
            led.getStyleClass().setAll("led");
        } else {                
            for (Section section : getSkinnable().getSections()) {
                if (section.contains(i * stepSize.doubleValue())) {
                    led.getStyleClass().setAll("led", section.getStyleClass());
                }
            }                
        }            
        leds.add(led);
    }

    if (Orientation.HORIZONTAL == getSkinnable().getOrientation()) {
        vBox.setManaged(false);            
        vBox.setVisible(false);
        hBox.getChildren().setAll(leds);
        peakLedIndex = 0;
    } else {
        hBox.setManaged(false);
        hBox.setVisible(false); 
        FXCollections.reverse(leds);
        vBox.getChildren().setAll(leds);
        peakLedIndex = leds.size() - 1;
    }

    // Add all nodes
    getChildren().setAll(hBox, vBox);        
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号