gpt4 book ai didi

java - 在ListView中用空格填充字符串

转载 作者:行者123 更新时间:2023-12-02 11:12:37 24 4
gpt4 key购买 nike

请问你能帮我吗?

我有java中的 ListView 在 ObservableList 或 ArrayList 中我有类似的字符串
CT审计服务中心 2760
ctfmon 6176
DLL主机6464
DLL主机14656
DLLML 10920
迪媒体 6768
dwm 1104
探险家6492
Chrome 2964

但是当我将其放入 ListView 时,我看到类似这样的内容:


CT审计服务中心 2760
ctfmon 6176
DLL主机656
DLLML 10920
迪媒体 6768
dwm 1104
探险家6492
Chrome 2964

在代码中,我没有什么特别的,所以如果你知道是什么让它忽略一些空格,请帮助我。

ArrayList<String> processListUnsorted = new ArrayList<String>();
...
Sting input...
processListUnsorted.add(input.trim());
...
List<String> sortedApps = processListUnsorted.stream() .sorted(String.CASE_INSENSITIVE_ORDER)
.collect(Collectors.toList());
...
ObservableList<String> sortedAppsFinal = FXCollections.observableArrayList(sortedApps);
...
somelistview.setItems(sortedAppsFinal);</code>

最佳答案

这是实现这一目标的一种方法,但我会采用 James_D 方法。

您应该考虑使用细胞工厂。分割字符串。然后使用 HBox。在 HBox 中使用两个标签。将第一个 Label 设置为 HBox.setHgrow(label, "ALWAYS");setMaxWidth(Double.MAX_VALUE);

import java.util.ArrayList;
import java.util.List;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.stage.Stage;

public class ListViewExperiments extends Application
{

@Override
public void start(Stage primaryStage) throws Exception
{
primaryStage.setTitle("ListView Experiment 1");

List<String> data = new ArrayList();
data.add("CTAudSvc 2760");
data.add("ctfmon 6176");
data.add("dllhost 6464");

ListView listView = new ListView();
listView.setItems(FXCollections.observableArrayList(data));
listView.setCellFactory(lv -> new ListCell<String>()
{
Label label = new Label();
Label label2 = new Label();
HBox hBox = new HBox(label, label2);

@Override
public void updateItem(String item, boolean empty)
{
super.updateItem(item, empty);
if (empty) {
setGraphic(null);
}
else {
label.setMaxWidth(Double.MAX_VALUE);
HBox.setHgrow(label, Priority.ALWAYS);
String[] splitString = item.split("\\s+");
label.setText(splitString[0]);
label2.setText(splitString[1]);
setGraphic(hBox);
}
}
});

HBox hbox = new HBox(listView);

Scene scene = new Scene(hbox, 300, 120);
primaryStage.setScene(scene);
primaryStage.show();
}

public static void main(String[] args)
{
Application.launch(args);
}
}

enter image description here

关于java - 在ListView中用空格填充字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50517151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com