2011-04-28 3 views
0

JPanel의 "Address"배열에있는 텍스트 필드 인 "HouseNumber, StreetName, Town, Postcode"의 값을 추가하고 싶습니다.이 방법에 대한 가장 좋은 방법은 무엇입니까? 감사JPanel의 TextField에 입력 된 값을 배열에 어떻게 추가합니까?

메인 클래스

public class Main{ 
public static void main(String[] args){ 
JFrame frame = new JFrame("Burgess-Brown-Pearson Homes"); 
JPanel panel = new JPanel(); 
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); 
JLabel HouseNumberLabel = new JLabel("House Number"); 
JTextField HouseNumber = new JTextField(""); 
JLabel StreetNameLabel = new JLabel("Street Name"); 
JTextField StreetName = new JTextField(""); 
JLabel TownLabel = new JLabel("Town"); 
JTextField Town = new JTextField(""); 
JLabel PostCodeLabel = new JLabel("PostCode"); 
JTextField PostCode = new JTextField(""); 
JLabel BedsLabel = new JLabel("Number of Beds"); 
JTextField Beds = new JTextField(""); 
JLabel PriceLabel = new JLabel("Price"); 
JTextField Price = new JTextField(""); 
JLabel TypeLabel = new JLabel("Building Type"); 
JTextField Type = new JTextField(""); 
JButton Submit = new JButton("Submit"); 
frame.setSize(500,500); 
panel.setSize(500,500); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.getContentPane().add(panel); 
panel.add(HouseNumberLabel); 
panel.add(HouseNumber); 
panel.add(StreetNameLabel); 
panel.add(StreetName); 
panel.add(TownLabel); 
panel.add(Town); 
panel.add(PostCodeLabel); 
panel.add(PostCode); 
panel.add(BedsLabel); 
panel.add(Beds); 
panel.add(PriceLabel); 
panel.add(Price); 
panel.add(TypeLabel); 
panel.add(Type); 
panel.add(Submit); 
frame.pack(); 
frame.show(); 
//Create new Person objects 
Address p[] = new Address[3]; 
p[0] = new Address("27","Abbey View","Hexham","NE46 1EQ"); 
p[1] = new Address("15", "Chirdon Crescent", "Hexham", "NE46 1LE"); 
p[2] = new Address("6", "Causey Brae", "Hexham", "NE46 1DB"); 
Details c[] = new Details[3]; 
c[0] = new Details ("3", "175,000", "Terraced"); 
c[1] = new Details ("6", "300,000", "Bungalow"); 
c[2] = new Details ("4", "250,000", "Detached"); 
//Send some messages to the objects 
c[0].setBeds("3 "); 
c[1].setBeds("6"); 
c[2].setBeds("4"); 
c[0].setPrice("175,000"); 
c[1].setPrice("300,000"); 
c[2].setPrice("250,000"); 
c[0].setType("Terraced"); 
c[1].setType("Bungalow"); 
c[2].setType("Detached"); 
//Set up the association 
p[0].ownsDetails(c[0]); 
p[1].ownsDetails(c[1]); 
p[2].ownsDetails(c[2]); 

System.exit(0); 
} 
} 

주소 클래스

public final class Address{ 
    //Class properties 
    private String HouseNumber, StreetName, Town, Postcode; 
    //Allow this person to own a car 
    private Details owns; 

    //Constructor 
    public Address(String aHouseNumber, String aStreetName, String Town, String Postcode) 
    { 
    setHouseNumber(aHouseNumber); 
    setStreetName(aStreetName); 
    setTown(Town); 
    setPostcode(Postcode); 
    } 

    public Address(){ 
    } 
    } 

    //Add a house 
    public void ownsDetails(Details owns){ 
    this.owns = owns; 
    } 
    //Set methods for properties 
    public void setHouseNumber(String aName){ 
    HouseNumber = aName; 
    } 
    public void setStreetName(String aName){ 
    StreetName = aName; 
    } 
    public void setTown(String anName){ 
    Town = anName; 
    } 
    public void setPostcode (String anName){ 
    Postcode = anName; 
    } 
    //Get methods for properties 
    public String getHouseNumber(){ 
    return HouseNumber; 
    } 
    public String setStreetName(){ 
    return StreetName; 
    } 
    public String setTown(){ 
    return Town; 
    } 
    public String setPostcode(){ 
    return Postcode; 
    } 

** 세부 클래스 **

public final class Details{ 
//Class properties 
private String Type, Beds, Price; 

//Constructor 
public Details(String aType, String aBeds, String aPrice){ 
    setType(aType); 
    setBeds(aBeds); 
    setPrice(aPrice); 
    } 

    //Set methods for properties 
    public void setType(String aType){ 
    Type = aType; 
    } 
    public void setBeds(String aBeds){ 
    Beds = aBeds; 
    } 
    public void setPrice(String aPrice){ 
    Price = aPrice; 
    } 
    //Get methods for properties 
    public String getType(){ 
    return Type; 
    } 
    public String getBeds() { 
    return Beds; 
    } 
    public String getPrice(){ 
    return Price; 
    } 
    } 
+0

@ 대런 버지스 : 어떤 유형의 주소 클래스입니까? 당신이 그것을 구현 했습니까? – Heisenbug

+0

무엇을 의미합니까? –

+0

주소 p [] = 새 주소 [3]; 주소의 클래스 정의를 표시 – Heisenbug

답변

2

정말 문제를 이해하지 않습니다. 당신에게는 필요한 모든 방법이 있습니다. 어쨌든 몇 가지 팁을 드리겠습니다.

우선 JTextField를 사용하여 새 주소를 만들고 기존 주소 중 하나를 업데이트하지 않으면 정적 배열이 올바른 선택이 아닐 수 있습니다. 대신 ArrayList를 사용해야합니다 :

ArrayList<Address> p = new ArrayList<Address>(); 

그리고 단순히 JTextFields에서 데이터를 검색하고 다른 주소 오브젝트 구성 :

Address newAddress = new Address(HouseNumber.getText(), 
           StreetName.getText(), 
           Town.getText(), 
           Postcode.getText()); 
p.add(newAddress); 

당신의 의심을 해결하기 위해이 충분한가를?

+0

이것은 매우 감사합니다. 예, 원래 arraylist는 내가 무엇을 변경했는지 알지 못합니다 : S –

+0

by 익명의 upvoter +1 – mKorbel

관련 문제