是否可以在javaFx标签中显示字符串格式的表? publicstaticvoidprintDetails(){ //将默认成员名称打印为数组 int i; System.out.println(“”); System.out.printf(“%-20s%-20s%-25s%-25s%-25s%n”、“索引”、“名称”、“会员资格日期”, “会员编号”、“会员类型”); System.out.println(“--------------------------------------------------------------------------------”) 对于(i=0;i
是的,可以在javaFx标签中显示字符串格式的表格,但它看起来不太好,正如James_D所说,您应该使用是否可以在javaFx标签中显示字符串格式的表? publicstaticvoidprintDetails(){ //将默认成员名称打印为数组 int i; System.out.println(“”); System.out.printf(“%-20s%-20s%-25s%-25s%-25s%n”、“索引”、“名称”、“会员资格日期”, “会员编号”、“会员类型”); System.out.println(“--------------------------------------------------------------------------------”) 对于(i=0;i,java,javafx,Java,Javafx,是的,可以在javaFx标签中显示字符串格式的表格,但它看起来不太好,正如James_D所说,您应该使用表格视图它看起来会更干净,而且它也会帮助您保持代码更干净,而不是使用4个不同的ArrayLists,最终您将拥有1个ArrayList对象包含它们自己的数据,您可以将这些对象传递到TableView,让它为您处理这些工作 将来/当您为您正在处理的任何内容编写此代码时,您应该将成员身份数据更新为正确的数据类型,例如,您可以将开始日期更改为本地日期,并将数字明显更改为整数 它最终会看起来像这样 p
表格视图
它看起来会更干净,而且它也会帮助您保持代码更干净,而不是使用4个不同的ArrayList
s,最终您将拥有1个ArrayList
对象包含它们自己的数据,您可以将这些对象传递到TableView
,让它为您处理这些工作
将来/当您为您正在处理的任何内容编写此代码时,您应该将成员身份数据
更新为正确的数据类型,例如,您可以将开始日期
更改为本地日期
,并将数字明显更改为整数
它最终会看起来像这样
public static void printDetails() {
//PRINTING DEFAULT MEMBERS NAMES AS AN ARRAY
int i;
System.out.println (" ");
System.out.printf ("%-20s%-20s%-25s%-25s%-25s%n", "Index", "Name", "membershipDate",
"membershipNumber","member type");
System.out.println("------------------------------------------------------------")
for (i = 0; i < defaultNames.size (); i++) {
System.out.format ("%-20s%-20s%-25s%-25s%-25s%n", i + 1, defaultNames.get (I),
defaultMembershipDate.get (i), defaultMembershipNumber.get (i),defaultMemberType.get (i));
}
}
为什么?为什么不在
表视图中显示它?但是,当然,您可以这样做:只需将所有这些内容连接成一个带有换行符的字符串
,并将其设置为标签的文本。您可能还希望将标签的字体设置为单间距字体。您可能还希望考虑创建成员身份对象,以便更轻松地跟踪所有成员身份data@James_D感谢您的回复。我制作了4个ArrayList,您能告诉我如何将用户内容添加到表中吗?@James_D/----存储用户的数组列表输入----------静态ArrayList defaultNames=new ArrayList();静态ArrayList defaultMembershipNumber=新ArrayList();静态ArrayList defaultMembershipDate=新ArrayList();静态ArrayList defaultMemberType=新ArrayList();正如@Matt所说,创建一个类来表示表中的每一行,然后完全按照中的操作,或者查看您想要的TableView
,列应该是TableColumn
(或者Number
,LocalDate
作为第二个参数,视情况而定)…是的,你对表格视图
和表格列
的权利,至于其他一切,这更像是一个让他开始的例子,这就是为什么它是编码的,但我应该在帖子中提到,这是我的不好
public class Main extends Application {
@Override
public void start(Stage stage) {
ArrayList<MembershipData> membershipDataArrayList = new ArrayList<>();
for (int i = 1; i < 5; i++) {
String letter = String.valueOf((char) (i + 64));
membershipDataArrayList.add(new MembershipData(letter, ""+i+i+i, ""+i+i+i, letter));
}
showDetails(membershipDataArrayList);
}
public void showDetails(ArrayList<MembershipData> membershipDataArrayList) {
System.out.println (" ");
System.out.printf ("%-20s%-20s%-25s%-25s%-25s%n", "Index", "Name", "membershipDate",
"membershipNumber","member type");
System.out.println("------------------------------------------------------------");
int i = 0;
for (MembershipData membershipData : membershipDataArrayList) {
System.out.format ("%-20s%-20s%-25s%-25s%-25s%n", i++, membershipData.getName(),
membershipData.getStartDate(), membershipData.getNumber() ,membershipData.getType());
}
TableColumn<MembershipData, String> column1 = new TableColumn<>("Name");
column1.setCellValueFactory(new PropertyValueFactory<>("name"));
TableColumn<MembershipData, String> column2 = new TableColumn<>("MemberShip Date");
column2.setCellValueFactory(new PropertyValueFactory<>("startDate"));
TableColumn<MembershipData, String> column3 = new TableColumn<>("MemberShip Number");
column3.setCellValueFactory(new PropertyValueFactory<>("number"));
TableColumn<MembershipData, String> column4 = new TableColumn<>("MemberShip Type");
column4.setCellValueFactory(new PropertyValueFactory<>("type"));
TableView<MembershipData> tableView = new TableView<>();
tableView.getColumns().addAll(column1, column2, column3, column4);
tableView.getItems().addAll(membershipDataArrayList);
VBox vBox = new VBox(tableView);
vBox.setAlignment(Pos.CENTER);
Stage stage = new Stage();
stage.setWidth(475);
stage.setScene(new Scene(vBox));
stage.show();
}
}
public class MembershipData{
private final String name;
private final String startDate;
private final String number;
private final String type;
public MembershipData(String name, String startDate, String number, String type){
this.name = name;
this.startDate = startDate;
this.number = number;
this.type = type;
}
public String getName() {
return name;
}
public String getStartDate() {
return startDate;
}
public String getNumber() {
return number;
}
public String getType() {
return type;
}
}