JavaFX学习之TableView

package application;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

public class MainController implements Initializable{
    @FXML private TableView<info> table;
    @FXML private TableColumn<info,Integer> id;
    @FXML private TableColumn<info,String> url;
    @FXML private TableColumn<info,Integer> code;
    @FXML private TableColumn<info,String> server;
    @FXML private TableColumn<info,String> title;

    public ObservableList<info> List = FXCollections.observableArrayList(

            new info(1, "http://www.baidu.com", 200,"nginx", "baidu")

            );

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        // TODO Auto-generated method stub
        id.setCellValueFactory(new PropertyValueFactory<info,Integer>("id"));
        url.setCellValueFactory(new PropertyValueFactory<info,String>("url"));
        code.setCellValueFactory(new PropertyValueFactory<info,Integer>("code"));
        server.setCellValueFactory(new PropertyValueFactory<info,String>("server"));
        title.setCellValueFactory(new PropertyValueFactory<info,String>("title"));

        table.setItems(List);

    }

}
package application;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Scene;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            FXMLLoader loader = new FXMLLoader(getClass().getResource("main.fxml"));
            Scene scene = new Scene(loader.load());

            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

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

import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;

public class info {

    private SimpleIntegerProperty id;
    private SimpleStringProperty url;
    private SimpleIntegerProperty code;
    private SimpleStringProperty server;
    private SimpleStringProperty title;

    public info(Integer id, String url, Integer code, String server, String title) {
        super();
        this.id = new SimpleIntegerProperty(id);
        this.url = new SimpleStringProperty(url);
        this.code = new SimpleIntegerProperty(code);
        this.server = new SimpleStringProperty(server);
        this.title = new SimpleStringProperty(title);
    }

    public Integer getId() {
        return id.get();
    }

    public void setId(Integer id) {
        this.id.set(id);
    }

    public String getUrl() {
        return url.get();
    }

    public void setUrl(String url) {
        this.url.set(url);
    }

    public Integer getCode() {
        return code.get();
    }

    public void setCode(Integer code) {
        this.code.set(code);;
    }

    public String getServer() {
        return server.get();
    }

    public void setServer(String server) {
        this.server.set(server);
    }

    public String getTitle() {
        return title.get();
    }

    public void setTitle(String title) {
        this.title.set(title);
    }

}
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>

<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainController">
   <children>
      <TableView fx:id="table" prefHeight="400.0" prefWidth="600.0">
        <columns>
          <TableColumn fx:id="id" prefWidth="34.0" text="id " />
          <TableColumn fx:id="url" prefWidth="186.0" text="url" />
            <TableColumn fx:id="code" minWidth="0.0" prefWidth="55.0" text="code" />
            <TableColumn fx:id="server" prefWidth="108.0" text="server" />
            <TableColumn fx:id="title" prefWidth="216.0" text="title" />
        </columns>
      </TableView>
   </children>
</Pane>
时间: 2024-10-23 22:01:09

JavaFX学习之TableView的相关文章

JavaFX学习之道:JavaFX之TableView

TableView表 TableColumn列 构建一个表主要有TableView,TableColumn,ObservableList,Bean. 添加列table.getColumns().addAll(firstNameCol, lastNameCol, emailCol); ObservableList里面是存放的数据 table.setItems(observableList);添加数据 observableList里面一般是存放的Bean,列与Bean之间建立联系,从而获取值. 列与

JavaFx学习之道:JavaFx初步了解

因为项目的需要,实在是没有办法了,试了很多种方案(RCP,SWT,Flex,Smartinvoke...),最终还是决定开始研究JavaFx...为了给用户更好地体验我们的"智能家居"! 以下是最近搜索得到的一些资料: 1.Oracle 上 JavaFx的下载页面:http://www.oracle.com/technetwork/java/javafx/overview/index.html 目前最新版本的SDK是2.1 JavaFX 2.1 Developer Preview -

JavaFX学习之道:FileChooser 、POI导出Excel文件

以下是JavaFX中导出Excel的核心代码: private HSSFWorkbook workbook; /* Build Operation Button Area */ Button exportBn = ButtonBuilder.create().text("导出Excel").prefWidth(80).prefHeight(30).build(); exportBn.setDefaultButton(true); exportBn.setOnAction(new Eve

JavaFX学习之Web

PopupFeatures 处理新窗口    WebHistory 网页一般都带有历史记录的功能,可以回退,也可以前进,fx用WebHistory处理. Java代码   final WebHistory wh = webEngine.getHistory();   //获取webhistory go(int offset)   //跳到相对应的页,一般-1是后退,1是前进 getCurrentIndex()  //获取当前页索引,开始页索引为0,点击进入下一页此时为1. WebView Web

JavaFX学习之道:FXML入门

FXML是JavaFX 2.0提供的新技术.你可能会问"什么是FXML?","对我来说有什么用?". FXML是一种在JavaFX应用程序中定义用户界面的,基于XML的声明性标记语言.FXML非常适合用来静态布局,如表单.控件和表格.使用FXML,您还可以通过脚本动态地构建布局. FXML的优势之一是基于XML,是大多数开发人员所熟悉的,尤其是Web开发人员和使用其他RIA平台的开发人员.另一个优点是,FXML是不是编译语言,你不需要重新编译代码就可看到您所做的更改

JavaFX学习之道:JavaFX API详解之Window,Stage,PopupWindow

stage包中包含 Window, Stage, PopupWindow, Popup, FileChooser, DirectoryChooser, Screen等类. 其中Window类可理解成一个窗体,用于存放Scene,并与用户操作.一般window作为窗体,都用其子类Stage和PopupWindow. 看一下Window作为窗体的顶级类包含的一些共同属性 eventDispatcher setEventDispatcher(EventDispatcher value) focused

JavaFX学习之道:详解JavaFX架构与框架

JavaFX 2.0平台是基于Java技术的富客户端平台.它使应用程序开发者更加容易的开发和部署跨平台的富互联网应用(RIA).JavaFX 2.0文档包含了JavaFX 2.0所提供的功能的概述. 图1描述了JavaFX 2.0平台的架构组件.后面的部分将对每一个组件进行逐一的描述.在JavaFX通用API的下面是用来运行JavaFX代码的引擎.这个引擎包括以下子组件:JavaFX高性能图形引擎(Prism);新的更小但更有效率的窗体系统(Glass);媒体引擎和Web引擎.虽然这些组件不是包

JavaFX学习之道:文本框TextField

原文地址http://download.oracle.com/javafx/2.0/ui_controls/text-field.htm TextField类实现了一种可以接受和显示文本输入的UI控件,它提供了接受用户输入的功能.和另一个文本输入控件PasswordField一起都继承了TextInput这个类,TextInput是所有文本控件的父类. Figure 8-1 是一个带有标签的典型文本框. Figure 8-1 Label and Text Field Description of

JavaFX学习之道:文本Text及其特效

原文地址http://download.oracle.com/javafx/2.0/text/jfxpub-text.htm 文本讲述如何在JavaFX2.0应用中加入文本和如何为文本提供花俏的效果. 引子 JavaFX 2.0应用的图形内容包含一些对象,它们被组织在一个成为场景图的类树结构中.场景图中的每个元素成为一个结点,结点可以管理很多不同种类的内容,包括文本.结点可以转换和移动,也可以应用多种效果.为所有结点类型使用共同特点使得可以提供复杂的文本内容来满足现在的富网络应用(RIAs).