花了一晚上的时间,总算对TableView有一个认识了。这里简单的说说自己的体会。
</pre> TableView是一个表格吧,使用它还挺麻烦的,要用到TableColumn,TableCell,还有一个ObservableList的数组。</p><p><span style="font-size:18px"> 推荐博客:</span></p><p><span style="font-size:18px"> http://www.tuicool.com/articles/rY3URj</span><div> http://docs.oracle.com/javafx/2/ui_controls/table-view.htm</div><div> 使用过程大概如下:</div><div> 1.我是用JavaFX Scene Builer 2.0建立的fxml,比较方便,如果有人看到这篇文章,可以留邮箱,我发给你,网上好像不好找(反正我在Oracle上是没找到),使用该软件的时候注意一点由于编码的问题中文可能在显示的时候会乱码,在eclipse下打开该fxml修改过来就好啦,英文的话就不会。</div><div> 2.剩下的就要写java类了,大概需要三个,一个start.java,一个actioncontrol.java,另一个Person.java.</div><div> start.java:</div><div><span style="background-color: rgb(240, 240, 240); font-size: 12px;">import javafx.application.Application;</span></div></p><pre name="code" class="java">
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Test extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
再看person.java:
主要是会用到一个类叫做SimpleStringProperty,它有get,set等方法,细节参考上面博客链接。
person中设置了三个参数,firstname,lastname,email,记住它们,后面要用到。
最后就是actionControll.java了,在fxml里面把它关联起来
fx:controller="actionControl"
在fxml的panel里面加入这句话就行了,注意这里的fx:很重要,记得tablecolumn的时候忘记了就出现问题了,而且fx:后面不要有空格!
接着,
ObservableList<Person> list = FXCollections.observableArrayList();
往list里添加person对象即可。
然后,
firstname.setCellValueFactory(new PropertyValueFactory("firstName"));
lastname.setCellValueFactory( new PropertyValueFactory("lastName"));
email.setCellValueFactory(new PropertyValueFactory("email"));
list.add(person);
table.setItems(list);
描红的firstName要和Person.java里面的变量名一致,lastName,email也一样。
firstname,lastname,email就是在fxml里面用id="...."定义的tableColumn,用@FXML在该java类里面调用就行
了。接着在fxml的button里面加入onAction="#showList" 。(引号是要调用的响应事件)。
最后的最后,运行吧!
有一个问题,为什么TextView的内容不能鼠标光标选择呢?希望有人给予指点
写的粗糙,细节的细节看推荐的博客。。。