簡體   English   中英

從GUI創建對象 - Java

[英]Create an Object from a GUI - Java

我有這個簡單的類Cat來描述Cat的特征:

public class Cat {

  private String name;
  private String race;
  private String colour;
  private int age;

  public Cat(String name, String race, String colour, int age) {
    this.name=name;
    this.race=race;
    this.colour=colour;
    this.age=age;
  }      

  public String getRace() {
      return race;
  }
  public String getName() {
      return name;
  }
  public String getColour() {
      return colour;
  }
  public int getAge() {
      return age;
  }

}

我還有一個CatDemo類,它創建一個Frame類的實例(擴展JFrame),從中可以插入cat的信息:

public class CatDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Frame f = new Frame();
        f.setVisible(true); 
    }

}

這是我的GUI:
在此輸入圖像描述

當按下OK我必須創建一個Cat類的實例(我必須創建一個Cat對象,其中的功能插入到GUI的空白處)。 actionPerformed方法中創建此實例很容易:

    public void actionPerformed(ActionEvent arg0) {
        Cat c = new Cat(textField.getText(),textField_1.getText(),
                        textField_2.getText(),Integer.parseInt(textField_3.getText())); 
    }

但現在我需要我的Cat對象來制作別的東西。 我怎樣才能使用CatDemo類中的c (哪里有main)?

你需要擴展框架。

public class MyFrame extends Frame {
    public Cat buildCatFromInputFields() {
        ...
        return cat;
    }
}

您還需要了解的是,當您進入AWT世界(使用該幀)時,您將離開主線程。 我的意思是,在你調用f.setVisible(true)之后 ,你的main方法和主線程結束了! 因此,在ActionHandler方法中使用cat(如actionPerformed() )是完全可取的。

您可以在主程序和框架中擁有一個公共靜態貓列表,當用戶按下OK時,您可以執行類似的操作

CatDemo.cats.Add(new Cat(name, race, color, age));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM