gpt4 book ai didi

java - 如何使用 JTextField 和 JButton 搜索包含 string、int 和 double 的数组列表

转载 作者:行者123 更新时间:2023-12-01 17:18:36 25 4
gpt4 key购买 nike

我目前有一个正在运行的 GUI 程序,上面有几个按钮,可以简单地单步浏览我的项目数组列表。这些仅显示第一个、最后一个或下一个和上一个索引结果。该列表内部包含 Stringintdouble。现在我添加了一个用于输入的 JTextField 和一个搜索按钮。我的问题是如何让我的搜索按钮搜索这个数组列表?我正在读this answer但我不明白数据的事情。在搜索之前是否必须将整个数组列表转换为字符串?会像

    ArrayList<inventoryItem> inventory = new ArrayList<>();  ....    
JTextField input = new JTextField(18); ...
JButton searchButton = new JButton("Search");
searchButton.setToolTipText("Search for entry");


searchButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
String usrInput = input.getText();
for (String s : inventory) {
if (usrInput.contains(s)) {
inventory.get(currentIndex);
outputText.append(" somehow put whatever the index is equal to here");

}

}

}
});

我得到的错误是inventoryItem 无法转换为字符串。第二个问题:我遇到的是如何让它输出该索引中的所有内容。例如我的输出如下所示:

class officeSupplyItem extends inventoryItem {

public officeSupplyItem(String itemName, int itemNumber, int inStock, double unitPrice) {
super(itemName, itemNumber, inStock, unitPrice);
}

@Override
public void output(JTextArea outputText) {
outputText.setText("Item Name = " + itemName + " \n"); //print out the item name
outputText.append("Item Number = " + itemNumber + " \n"); //print out the item number
outputText.append("In Stock = " + inStock + " \n"); //print out how many of the item are in stock
outputText.append("Item Price = $" + formatted.format(unitPrice) + " \n"); //print out the price per item
outputText.append("Restocking fee is $" + formatted.format(restockingFee) + " per item \n");
outputText.append("Value of item inventory = $" + formatted.format(value) + " \n"); //print out the value of the item inventory
outputText.append("Cost of inventory w/restocking fee = $" + formatted.format(inventoryValue) + " \n"); //print out the total cost of inventory with restocking fee

}
}

我还想了解上述链接的数据部分的含义。

最佳答案

我不太清楚“这个列表里面有 String、int 和 double”是什么意思。

您正在将对象字段与输入的文本进行比较。您无需将 InventoryItem 转换为字符串。您需要做的是确定要比较哪些字段并在比较中使用它们。

据我所知,输入到 JTextField 的文本是代码的搜索条件。如果我假设它是 itemName,您的代码应如下所示:

searchButton.addActionListener(new ActionListener() {  
@Override
public void actionPerformed(ActionEvent ae) {
String usrInput = input.getText();
for (InventoryItem s : inventory) {
if (usrInput.equalsIgnoreCase(s.getItemName())) {
//you can call output string here
outputText.append(" somehow put whatever the index is equal to here");

}
}

}
});

这是针对 JTextField 输入是 itemName 的情况。如果这与您的预期有任何不同,请发表评论。

从您共享的链接来看,不同之处在于他的列表仅包含字符串,这就是为什么“datum”是一个字符串。这不能用于您的情况。

希望这有帮助!

关于java - 如何使用 JTextField 和 JButton 搜索包含 string、int 和 double 的数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20366435/

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