Java CS程序:数据表格控件
引言
在计算机科学领域,数据表格是一种常见的数据展示和管理工具,它可以以表格的形式展示和存储数据。在Java编程中,我们可以使用各种数据表格控件来创建、显示和操作数据表格。本文将介绍Java中一些常见的数据表格控件,并通过代码示例演示它们的用法。
1. JTable
JTable是Swing框架中提供的一个强大的数据表格控件。它可以用于显示和编辑二维表格数据。下面是一个简单的JTable示例:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class JTableExample {
public static void main(String[] args) {
// 创建表格数据
Object[][] data = {
{"John", 25, "USA"},
{"Alice", 30, "UK"},
{"Bob", 35, "Canada"}
};
// 创建表格列名
String[] columnNames = {"Name", "Age", "Country"};
// 创建JTable并设置数据和列名
JTable table = new JTable(data, columnNames);
// 创建滚动面板,并将表格放入其中
JScrollPane scrollPane = new JScrollPane(table);
// 创建主面板,并将滚动面板放入其中
JPanel panel = new JPanel();
panel.add(scrollPane);
// 创建窗口,并将主面板放入其中
JFrame frame = new JFrame("JTable Example");
frame.setContentPane(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
上面的代码首先创建了一个二维数组 data
来存储表格数据,然后创建了一个字符串数组 columnNames
来存储表格列名。接下来,我们使用 JTable
构造函数来创建一个新的表格,并将数据和列名传递给它。然后,我们使用 JScrollPane
来创建一个带滚动条的面板,并将表格放入其中。最后,我们将该面板放入一个主面板中,并将主面板放入一个窗口中显示出来。
2. JavaFX TableView
除了Swing,Java还提供了JavaFX作为另一个用户界面开发框架。JavaFX中的 TableView
类提供了类似于JTable的功能,用于显示和编辑数据表格。下面是一个简单的JavaFX TableView示例:
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class TableViewExample extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
// 创建表格数据
ObservableList<Person> data = FXCollections.observableArrayList(
new Person("John", 25, "USA"),
new Person("Alice", 30, "UK"),
new Person("Bob", 35, "Canada")
);
// 创建表格列
TableColumn<Person, String> nameColumn = new TableColumn<>("Name");
nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
TableColumn<Person, Integer> ageColumn = new TableColumn<>("Age");
ageColumn.setCellValueFactory(new PropertyValueFactory<>("age"));
TableColumn<Person, String> countryColumn = new TableColumn<>("Country");
countryColumn.setCellValueFactory(new PropertyValueFactory<>("country"));
// 创建TableView并设置数据和列
TableView<Person> tableView = new TableView<>();
tableView.setItems(data);
tableView.getColumns().addAll(nameColumn, ageColumn, countryColumn);
// 创建主布局并将TableView放入其中
VBox root = new VBox(tableView);
// 创建场景并将主布局放入其中
Scene scene = new Scene(root);
// 设置舞台标题和场景,然后显示舞台
primaryStage.setTitle("TableView Example");
primaryStage.setScene(scene);
primaryStage.show();
}
}
// 定义一个Person类来存储数据
class Person {
private String name;
private int age;
private String country;
public Person(String name, int age, String country) {
this.name = name;
this.age = age;
this.country = country;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getCountry() {