繁体   English   中英

如何获取对象名称并将其显示在JFrame的标题中

[英]How can I take the name of my Object and show it into the Title of the JFrame

我想在ArrayList中使用第一个对象的名称,但是我真的不知道该怎么做。 我使用的这个名称应该是我的JFrame的标题。

这是我的JFrame:

public class TransactionFrame extends JFrame implements ActionListener {
private Transaction trans;
private Bank bank;
private Customer customer;
private Account acc;
private Toolkit t;
private int x=0, y=0, width=800, height = 600;

public TransaktionFrame(Konto konto) throws HeadlessException {
    super();
    this.konto = konto;
    t = Toolkit.getDefaultToolkit();
    Dimension d = t.getScreenSize();
    x = (int)((d.getWidth() - width) / 2);
    y = (int)((d.getHeight()- height)/ 2);

    setTitle("Application Java" );

    setBounds(x, y, width, height);
    setVisible(true);
}
}

下一个是我的类Menue,带有一个称为InitOfObjects的方法

public class Menue {

private Bank bank = new Bank();
private Account account = new Account();
private Customer customer= new Customer();

   public void initOfObjects(){
    Customer customer1 = new Privatecustomer("Ragnar", "Lothbrok", "017634456657", "Lothbrok@ragnar.de", "15.07.1979",
    new Adress("Ragnarstraße", "22", "12159", "Berlin"), "2");
    bank.addCustomer(customer1);

    Kunde customer2 = new Companycustomer("Varian", "Lothbrok", "017634456657", "Lothbrok@ragnar.de", "15.07.1979",
    new Adress("Ragnarstraße", "22", "12159", "Berlin"), "2");
    bank.addCustomer(customer2);

    Customer customer3 = new Privatecustomer("Rengar", "Lothbrok", "017634456657", "Lothbrok@ragnar.de", "15.07.1979",
    new Adress("Ragnarstraße", "22", "12159", "Berlin"), "2");
    bank.addCustomer(customer3);
 }
}

我的银行课程:

public class Bank {

private String name;
private String bic;
private Adress adress;
private ArrayList<Customer> customerList;

public Bank() {
    super();
    this. customerList = new ArrayList<Customer>();
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getbIC() {
    return bic;
}// end of getbIC()

public void setbIC(String bic) {
    this.bic = bic;
}

public Adress getAdress() {
    return adress;
}

public void setAdress(Adress adress) {
    this.adress = adress;
}

public int sizeOfArraylist(){
    return customerList.size();
}

public Customer get(int index){
    return customerList.get(index);

}

public ArrayList<Customer> getCustomerList() {
    return customerList;
}// end of getCustomerList()

public void setCustomerList(ArrayList<Customer> customerList) {
    this. customerList = customerList;
}

public boolean addAccount(Account account) {
    for (Customer c : customerList) {
        if (c.getCustomerNumber().equals(account.getCustomerNb())) {
            boolean sucess = k.addAccount(account);
            return sucess;
        }
    }
    return false;
}

public void addCustomer(Customer customer) {
    this.customerList.add(customer);
}

@Override
public String toString() {
    return "Bank [Name= " + name + ", BIC= " + bic + ", Adress= " + adress + ", Customer= " + customerList + " ]";
}

}

我的客户类别:

public class Customer implements Comparator<Customer> {

protected String customerNumber;
private Adress adress;
protected ArrayList<Account> account;


public Customer(String cnb, Adress adress) {
    super();
    this.customerNumber = cnb;
    this.adress = adress;
}

public Customer(String customerNumber) {
    this.customerNumber = customerNumber;
}

public Customer() {

}

public Adress getAdress() {
    return adress;
}

public void setAdress(Adress adress) {
    this.adress = adress;
}

public String getCustomerNumber() {
    return customerNumber;
}

public Customer setCustomerNumber(String customerNumber) {
    this.customerNumber = customerNumber;
    return this;
}

public ArrayList<Account> getAccount() {
    return account;
}


public boolean addAccount(Account acc) {
    if (account == null)
        account = new ArrayList<Account>();


    if (account.size() > 10)
        return false; 


    account.add(k);

    return true;
}


@Override
public int compare(Customer o1, Customer o2) {

    return o1.customerNumber.compareTo(o2.customerNumber);
}

}

我的私人客户课程(相关课程的简称):

public class Privatecustomer extends Customer {

private String firstname;
private String lastname;
private Adresse adress;
private String customerNumber;

public Privatkunde(String firstname, String lastname, Adress adress, String kndnr) {
    super(kndnr, adress);
    this.firstname = firstname;
    this.lastname = lastname;
    this.adresse = adress;
    this.customerNumber = cnb;

} 
public String getFirstname() {
    return firstname;
}

public void setFirstname(String firstname) {
    this.firstname = firstname;
}

public String getLastname () {
    return lastname;
}

public void setLastname (String lastname) {
    this.lastname = lastname;
}

public Adress getAdress() {
    return adress;
}

public void setAdress(Adress adress) {
    this.adress = adress;
}

}

我的公司客户类别(相关简称):

public class Companycustomer extends Customer {


private String companyName;
private Adresse adr;

public Companycustomer(String companyName, Adress adress, String customerNumber) {
    super(customerNumber, adress);
    this.companyName = firmenName;
    this.adr = adress;

}

public String getCompanyName() {
    return companyName;
}

public void setCompanyName(String companyName) {
    this.companyName = companyName;
}

public Adresse getAdr() {
    return adr;
}

public void setAdr(Adress adr) {
    this.adr = adr;
}

私人客户和公司客户从客户扩展。 我只想说代码实际起作用。 我只想知道如何提取客户的姓名和姓氏以及公司客户的姓名。 我为什么使用Swing,因为老师说了。 我很想学习javafx,但是老师说不。 如果您需要更多代码,请给我写信。 我真的是Java新手。

最好的问候Maskulin

下面是相同的伪代码,

Menue  menu = new Menue();
menu.initOfObjects();//populate list of customers

Bank bankObj=menu.getBank();
List<Customer> customers=bankObj.getCustomers();//get List of customers

if(customers!=null && customers.size()>0)
setTitle(customers.get(0).getCustomerName() );//get First customer details

我对您的完整问题不是很确定,但是我想我知道您想要什么,所以我会发挥一些想象力来回答您。

我假设您正在谈论的ArrayList位于Bank类的字段银行中,并且您正在通过Menue类存储所有帐户,所以第一步是在两个类中都创建一个getter:

public class Bank {

    ...

    ArrayListz<Customer> list;

    public int size()
    {
        return list.size();
    }

    // Notice that this WILL ASSUME that index is < than size
    public Customer get(int index)
    {
        return list.get(index);
    }
}

public class Menue {

...

    public Customer getCustomer(int index)
    {
        // If element exists at 'index', return it. If it doesn't, return null
        return index >= bank.size() ? null : bank.get(index);
    }

}

您需要“ 客户”字段值,因此您需要在正确的类中执行上述类似操作。 现在,您可以访问所需的所有信息,因此,假设您已在JFrame类中正确初始化了字段 ,则可以执行以下操作:

public class TransactionFrame extends JFrame implements ActionListener {

    private Bank bank;
    ...

    public TransaktionFrame(Konto konto) throws HeadlessException {
        super();
        ...

        //this will return the name of the first customer    
        Customer customer = bank.getCustomer(0);
        String name = customer == null ? "" : customer.getName();

        ...

        setTitle(name); //this will use the name of your the first customer as the title of the JFrame

    }
}

我不确定这是否可以解决您的问题,但希望对您有所帮助:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM