如何使JavaFX 2.0中的类成为可用的节点?

时间:2013-12-06 02:04:08

标签: java javafx javafx-2

我是JavaFX的新手,所以请不要犹豫,解释基本概念。我能够创建一个简单的GUI,我的程序中有两个选项卡TabPane。我的问题是如何创建一个可以用作节点的类?

例如,tab.setContent(stuff)会将stuff添加到tabtab,当然假设stuffNode。所以,假设我创建了一个名为Clock的类,并希望将其实例添加到tab,我该如何做这样的事情?

时钟应该是图形对象。我是图形编程的新手,所以对Swing等的引用不会特别有用。

2 个答案:

答案 0 :(得分:3)

在您的情况下,创建一个“Clock”类并使用您希望包含的布局对其进行扩展。例如:

public class Clock extends BorderPane{}

然后,您可以使用构造函数为其设置属性或其他节点。

public class Clock extends BorderPane{
     TextArea ta = new TextArea("This is TOP");
     this.setTop(ta);
     Button b1 = new Button("This is button 1");
     Button b2 = new Button("This is button 2");
     HBox box = new HBox();
     box.getChildren().addAll(b1,b2);
     this.setCenter(box);
}

然后,您可以从主程序中调用它:

@Override
public void start(Stage primaryStage){
     primaryStage.setScene(new Scene(new Clock()));
     primaryStage.show();
}

在您的情况下,您可以在按下选项卡时设置场景。这可以使用Tab类并向其添加actionListener来完成。

tab.setContent(new Clock());

希望这会有所帮助。

答案 1 :(得分:0)

请在时钟中添加方法,然后再创建一个调用此方法的构造函数。把所有

TextArea ta = new TextArea("This is TOP");
 this.setTop(ta);
 Button b1 = new Button("This is button 1");
 Button b2 = new Button("This is button 2");
 HBox box = new HBox();
 box.getChildren().addAll(b1,b2);
 this.setCenter(box);

在那个方法中。