2013-11-22 2 views
0

Есть ли способ иметь панели с разной высотой в аккордеоне в JavaFX? Я хотел бы знать, как это сделать. Я искал его, но я не нашел того, что мне нужно.Как установить разные высоты на панели с аккордеона?

+0

Я не получаю ровно то, что вы говорите, если вы хотите установить все стекла разных размеров в начальный момент, тогда я даю ответ ниже .., если его что-то еще скажет мне? –

ответ

0

вы можете сделать это с setPrefHeight из панели ....

попробовать это.

pane.setPrefHeight(400); 
+0

Спасибо за помощь. Я пробовал это раньше, но это не сработало, я выяснил, что это как-то связано с изменениями, внесенными мной на таблицу стилей – Andre

+0

@ Аndre его в нужное время и его идеально ... если вы хотите изменить его, тогда вы может использовать событие ... если у вас есть еще одна проблема, расскажите мне в некоторых деталях –

0

Попробуйте это:

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.control.Accordion; 
import javafx.scene.control.TitledPane; 
import javafx.scene.image.Image; 
import javafx.scene.image.ImageView; 
import javafx.scene.paint.Color; 
import javafx.stage.Stage; 

public class TitledPaneSample extends Application 
{ 
final String[]  imageNames = new String[]{ 
    "Apples", "Flowers", "Leaves"}; 
final Image[]  images  = new Image[imageNames.length]; 
final ImageView[] pics  = new ImageView[imageNames.length]; 
final TitledPane[] tps  = new TitledPane[imageNames.length]; 

public static void main(String[] args) 
{ 
    launch(args); 
} 

@Override 
public void start(Stage stage) 
{ 
    stage.setTitle("TitledPane"); 
    Scene scene = new Scene(new Group(), 380, 380); 
    scene.setFill(Color.GHOSTWHITE); 

    final Accordion accordion = new Accordion(); 

    for (int i = 0; i < imageNames.length; i++) 
    { 
     images[i] = new Image(getClass().getResourceAsStream(imageNames[i] 
      + ".jpg")); 
     pics[i] = new ImageView(images[i]); 
     tps[i] = new TitledPane(imageNames[i], pics[i]); 
     tps[i].setMinHeight(i * 100); 
    } 
    accordion.getPanes().addAll(tps); 
    accordion.setExpandedPane(tps[0]); 

    Group root = (Group) scene.getRoot(); 
    root.getChildren().add(accordion); 
    stage.setScene(scene); 
    stage.show(); 
} 
} 

Все, что вам нужно в дополнение к вышеуказанному коду иметь три файлы, помещенные в правильном месте.

Смежные вопросы