2016-02-09 3 views
1

У меня есть этот простой класс Cat описать особенности кошки:Создание объекта с графическим интерфейсом - Java

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 класс, который создает экземпляр класса кадра (который расширяет JFrame), из которых можно вставить информацию кошки:

public class CatDemo { 

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

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

} 

Это мой GUI:
enter image description here

При нажатии OK мне нужно создать экземпляр класса Cat (мне нужно создать объект Cat с функциями, вставленными в пробелы графического интерфейса). Это легко создать этот экземпляр внутри actionPerformed метода:

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

Но теперь мне нужно объект Cat, чтобы сделать что-то другое. Как я могу использовать c от CatDemo класс (где есть основной)?

+1

Просто объявить 'Cat C,' вне вашего метода и внутри вашего класса. – Satya

ответ

2

Вам необходимо расширить рамки.

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

Кроме того, что вы должны понять, что вы покидаете свой основной поток, при входе в AWT мир (с кадром). Я имею в виду, что после того, как вы позвоните f.setVisible (true), ваш основной метод и конец главной нити! Таким образом, было бы вполне целесообразно использовать вашу кошку внутри ваших методов ActionHandler (например, actionPerformed()).

1

Вы можете иметь публичный статический список кошек в основной программе и от вашей рамы, когда пользователь нажимает кнопку ОК, вы можете сделать что-то вроде

CatDemo.cats.Add(new Cat(name, race, color, age)); 
Смежные вопросы