ATM 使用客户 class 的数据结构搜索数组列表并将其存储在字符串生成器中
ATM using data structure search arraylist of customer class and store it in string builder
我创建 ATM 并将客户数据存储在数组列表中。我搜索了客户数据并将其存储在 stringbuilder 中以获得预期输出。
public void search() {
String s1 = "",result="",
s2 = "";
s1 = JOptionPane.showInputDialog("Enter Account Number u want to find ", s2);
boolean found = false;
StringBuilder builder=new StringBuilder();
builder.append("Account Number\tName\t\tPincode\tUser Login\t\tBalance\t\tStatus\t\tType");
for (int i = 0; i < user.size(); i++) {
Customer_Data var = user.get(i);
if (var.accountNum == Integer.parseInt(s1))
{ builder.append("\n"+var.accountNum+"\t\t"+var.name+"\t\t"+var.pincode+"\t\t"+var.login+"\t\t"+var.startingBalance+"\t\t"+var.status+"\t\t"+var.type);
result=builder.toString();
//JOptionPane.showMessageDialog(null,result, "sad", JOptionPane.PLAIN_MESSAGE);
found = true;
}
}
if(found)
{
JOptionPane.showMessageDialog(null,builder, "sad", JOptionPane.PLAIN_MESSAGE);
}
if (!found) {
JOptionPane.showMessageDialog(null, "Not Fount");
}
}
如何在字符串生成器中获取制表符空格\n。
我希望客户 class 的 arraylist 的输出像这样
AccountID UserID Holders Name Type Balance Status
15 44045 xyz Savings 80,000 Active
18 43075 abc Savings 80,000 Active
但实际输出是
AccountIDUserIDHoldersNameTypeBalanceStatus
154404xyzSavings80,000Active
1843075abcSavings80,000Active
您必须进行一些更改才能完成这项工作。您应该遵循的步骤如下:
- 在
JOptionPane#showMessageDialog()
方法中使用 JLabel,这样您就可以在文本中添加制表符。
- 使用
<html>
和<pre>
标记到 JLabel 文本的开头。 ('\t' 将被识别。)
- (可选)根据需要使用
StringBuilder
。不要将所有文本附加到一行中。将其拆分为多个但更易读的行。
一个简单的例子是:
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(TAB);
sb.append("Stack");
sb.append(SPACE);
sb.append("Overflow");
JLabel label = new JLabel("<html><pre>" + sb.toString());
JOptionPane.showMessageDialog(null, label, "sad", JOptionPane.PLAIN_MESSAGE);
其中 TAB 和 SPACE 是:
private static final char TAB = '\t';
private static final char SPACE = ' ';
预览:
如果要在对话框中以表格形式显示数据,可以使用 JTable
。这是一种更简洁、更健壮的方法。试试下面的例子看看。
import javax.swing.*;
import java.util.ArrayList;
import java.util.List;
public class TableInDialog {
private List<Customer_Data> user;
public TableInDialog() {
// Sample data
user = new ArrayList<>();
user.add(new Customer_Data(15, "xyz", 44045, "login1", 80000, "Active", "Savings"));
user.add(new Customer_Data(18, "abc", 43075, "login2", 80000, "Active", "Savings"));
}
public static void main(String[] args) {
new TableInDialog().search();
}
public void search() {
String s1 = "", s2 = "";
s1 = JOptionPane.showInputDialog("Enter Account Number u want to find ", s2);
String[] columns = new String[] {"Account Number", "Name", "Pincode",
"User Login", "Balance", "Status", "Type"};
Object[][] rows = new Object[1][columns.length];
boolean found = false;
for (int i = 0; i < user.size(); i++) {
Customer_Data var = user.get(i);
if (var.accountNum == Integer.parseInt(s1))
{
rows[0] = new Object[] {var.accountNum, var.name, var.pincode,
var.login, var.startingBalance, var.status, var.type};
found = true;
break;
}
}
if (found) {
JOptionPane.showMessageDialog(null,new JScrollPane(new JTable(rows, columns)),
"sad", JOptionPane.PLAIN_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null, "Not Fount");
}
}
}
class Customer_Data {
int accountNum;
String name;
int pincode;
String login;
int startingBalance;
String status;
String type;
public Customer_Data(int accountNum, String name, int pincode, String login,
int startingBalance, String status, String type) {
this.accountNum = accountNum;
this.name = name;
this.pincode = pincode;
this.login = login;
this.startingBalance = startingBalance;
this.status = status;
this.type = type;
}
}
结果对话框是这样的:
我创建 ATM 并将客户数据存储在数组列表中。我搜索了客户数据并将其存储在 stringbuilder 中以获得预期输出。
public void search() {
String s1 = "",result="",
s2 = "";
s1 = JOptionPane.showInputDialog("Enter Account Number u want to find ", s2);
boolean found = false;
StringBuilder builder=new StringBuilder();
builder.append("Account Number\tName\t\tPincode\tUser Login\t\tBalance\t\tStatus\t\tType");
for (int i = 0; i < user.size(); i++) {
Customer_Data var = user.get(i);
if (var.accountNum == Integer.parseInt(s1))
{ builder.append("\n"+var.accountNum+"\t\t"+var.name+"\t\t"+var.pincode+"\t\t"+var.login+"\t\t"+var.startingBalance+"\t\t"+var.status+"\t\t"+var.type);
result=builder.toString();
//JOptionPane.showMessageDialog(null,result, "sad", JOptionPane.PLAIN_MESSAGE);
found = true;
}
}
if(found)
{
JOptionPane.showMessageDialog(null,builder, "sad", JOptionPane.PLAIN_MESSAGE);
}
if (!found) {
JOptionPane.showMessageDialog(null, "Not Fount");
}
}
如何在字符串生成器中获取制表符空格\n。 我希望客户 class 的 arraylist 的输出像这样
AccountID UserID Holders Name Type Balance Status
15 44045 xyz Savings 80,000 Active
18 43075 abc Savings 80,000 Active
但实际输出是
AccountIDUserIDHoldersNameTypeBalanceStatus
154404xyzSavings80,000Active
1843075abcSavings80,000Active
您必须进行一些更改才能完成这项工作。您应该遵循的步骤如下:
- 在
JOptionPane#showMessageDialog()
方法中使用 JLabel,这样您就可以在文本中添加制表符。 - 使用
<html>
和<pre>
标记到 JLabel 文本的开头。 ('\t' 将被识别。) - (可选)根据需要使用
StringBuilder
。不要将所有文本附加到一行中。将其拆分为多个但更易读的行。
一个简单的例子是:
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(TAB);
sb.append("Stack");
sb.append(SPACE);
sb.append("Overflow");
JLabel label = new JLabel("<html><pre>" + sb.toString());
JOptionPane.showMessageDialog(null, label, "sad", JOptionPane.PLAIN_MESSAGE);
其中 TAB 和 SPACE 是:
private static final char TAB = '\t';
private static final char SPACE = ' ';
预览:
如果要在对话框中以表格形式显示数据,可以使用 JTable
。这是一种更简洁、更健壮的方法。试试下面的例子看看。
import javax.swing.*;
import java.util.ArrayList;
import java.util.List;
public class TableInDialog {
private List<Customer_Data> user;
public TableInDialog() {
// Sample data
user = new ArrayList<>();
user.add(new Customer_Data(15, "xyz", 44045, "login1", 80000, "Active", "Savings"));
user.add(new Customer_Data(18, "abc", 43075, "login2", 80000, "Active", "Savings"));
}
public static void main(String[] args) {
new TableInDialog().search();
}
public void search() {
String s1 = "", s2 = "";
s1 = JOptionPane.showInputDialog("Enter Account Number u want to find ", s2);
String[] columns = new String[] {"Account Number", "Name", "Pincode",
"User Login", "Balance", "Status", "Type"};
Object[][] rows = new Object[1][columns.length];
boolean found = false;
for (int i = 0; i < user.size(); i++) {
Customer_Data var = user.get(i);
if (var.accountNum == Integer.parseInt(s1))
{
rows[0] = new Object[] {var.accountNum, var.name, var.pincode,
var.login, var.startingBalance, var.status, var.type};
found = true;
break;
}
}
if (found) {
JOptionPane.showMessageDialog(null,new JScrollPane(new JTable(rows, columns)),
"sad", JOptionPane.PLAIN_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null, "Not Fount");
}
}
}
class Customer_Data {
int accountNum;
String name;
int pincode;
String login;
int startingBalance;
String status;
String type;
public Customer_Data(int accountNum, String name, int pincode, String login,
int startingBalance, String status, String type) {
this.accountNum = accountNum;
this.name = name;
this.pincode = pincode;
this.login = login;
this.startingBalance = startingBalance;
this.status = status;
this.type = type;
}
}
结果对话框是这样的: