2015-01-19 2 views
1

В настоящее время я строю систему бронирования отелей, и у меня возникают проблемы с извлечением и настройкой других значений из JTextField.Получение значений от A JTextField

То, что я пытаюсь сделать, это получить значение, введенное в текстовое поле, а затем установить это значение для строки в другом классе.

В здесь, я пытаюсь получить значения из JTextField:

@Override 
public void actionPerformed(ActionEvent event) { 
    GuestInfo gi = new GuestInfo(); 

    if (event.getSource()==roomView) 
    { 
     roomViewFrame.setVisible(true); 
     roomViewFrame.setSize(1000, 600); 

    } 

    if (event.getSource()==confirmGuestInfo) 
    { 
     String firstNameValue = firstNameInput.getText(); 
     if (firstNameValue.equals("")){ 
      System.out.printf("Please input first name!"); 
     } 
     else{ 
      firstNameValue = gi.getFirstName(); 
     } 

     String lastNameValue = lastNameInput.getText(); 
     if (lastNameValue.equals("")){ 
      System.out.printf("Please input last name!"); 
     } 
     else{ 
      lastNameValue = gi.getLastName(); 
     } 

     String addressValue = addressInput.getText(); 
     if (addressValue.equals("")){ 
      System.out.printf("Please input address!"); 
     } 
     else{ 
      addressValue = gi.getAddress(); 
     } 

     String phoneNumberValue = phoneNumberInput.getText(); 
     if (phoneNumberValue.equals("")){ 
      System.out.printf("Please input phone number!"); 
     } 
     else{ 
      phoneNumberValue = gi.getPhoneNumber(); 
     } 

Это мой GuestInfo ("ГИ") Класс:

import java.util.*; 

import javax.swing.JButton; 
import javax.swing.*; 
public class GuestInfo { 

    public static String firstName; 
    public static String lastName; 
    public static String address; 
    public static String phoneNumber; 
    public static String numberOfGuests; 
    public static String status; //Still checked in or checked out? 
    public static String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public static String getLastName() { 
     return lastName; 
    } 

    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 

    public static String getAddress() { 
     return address; 
    } 

    public void setAddress(String address) { 
     this.address = address; 
    } 

    public String getPhoneNumber() { 
     return phoneNumber; 
    } 

    public void setPhoneNumber(String phoneNumber) { 
     this.phoneNumber = phoneNumber; 
    } 

    public String getNumberOfGuests() { 
     return numberOfGuests; 
    } 

    public void setNumberOfGuests(String numberOfGuests) { 
     this.numberOfGuests = numberOfGuests; 
    } 

    public String getStatus() { 
     return status; 
    } 

    public void setStatus(String status) { 
     this.status = status; 
    } 





} 


/* 
* JFrame frame = new JFrame(); 
    JButton button = new JButton("YES"); 

* public GuestInfo() 

{ 
frame.setLayout(null); 
frame.setSize(600, 600); 
frame.setVisible(true); 
frame.add(button); 
button.setBounds(10, 200,300, 300); 

}*/ 
+1

Оставьте свой код здесь не на внешнем сайте – Reimeus

+0

Извините! Спасибо MadProgrammer за его исправление! – zeroaim

+0

Рассмотрите возможность предоставления [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer

ответ

1

Так на основе ограниченной информации, которую вы «в при условии, это не имеет смысла ...

String firstNameValue = firstNameInput.getText(); 
if (firstNameValue.equals("")){ 
    System.out.printf("Please input first name!"); 
} 
else{ 
    firstNameValue = gi.getFirstName(); 
} 

в принципе, вы просили значение от firstNameInput поле, проверяется, чтобы увидеть, если это пустой, но если это не так, вы сразу же присваивается значение от gi до значения firstNameValue, который на основе использования GuestInfo gi = new GuestInfo(); делали бы значения все равно пусто ...

Так , вы принимаете только значения из пользовательского интерфейса, когда они пусты?

Это public static String firstName; также действительно, действительно, плохая идея. Что происходит, когда у вас более одного гостя? Они все имеют одну и ту же информацию?

+0

Спасибо! Для «public static String firstName;» вместо этого нужно создать массив гостей и вместо этого сохранить информацию? – zeroaim

+0

Вы должны сначала удалить модификаторы 'static', и вы можете использовать' List' или 'Map' какого-либо типа для их хранения на основе ваших потребностей – MadProgrammer

0

как MadProgrammer сказал, основываясь на ограниченной информации, я предполагаю, что на вашем метод actionPerformed вы получаете всю информацию о гостях для сохранения в классе guestInfo. если тот случай, чем я предполагаю, что вы имеете в виду использовать методы установщики не геттеры как в:

String firstNameValue = firstNameInput.getText(); 
if (firstNameValue.equals("")){ 
    System.out.printf("Please input first name!"); 
} 
else{ 
    //firstNameValue = gi.getFirstName(); //not this 
    gi.setFirstName(firstNameValue); //but this 
} 

, а также все ваши atributes на guestInfo должны быть private объема вместо public, поскольку вы составляете геттеры для них ...

Смежные вопросы