2013-03-30 4 views
-1

Можете ли вы мне помочь?Выбрасывание значения другому классу

Вот код первый:

public RegistrationForm(){ 

    super("Registration Form (Assignment One)"); 
    setLayout(new GridLayout(6,2)); 

    l[0] = new JLabel("Name: "); 
    l[0].setFont(new Font("Calibri Head",Font.BOLD,12)); 
    add(l[0]); 

    tf[0] = new JTextField(); 
    tf[0].setToolTipText("Enter Your Full Name"); 
    add(tf[0]); 


    l[1] = new JLabel("Age: "); 
    l[1].setFont(new Font("Calibri Head",Font.BOLD,12)); 
    add(l[1]); 

    tf[1] = new JTextField(); 
    tf[1].setToolTipText("Enter Your Age"); 
    add(tf[1]); 

    l[2] = new JLabel("Birthday: "); 
    l[2].setFont(new Font("Calibri Head",Font.BOLD,12)); 
    add(l[2]); 

    tf[2] = new JTextField(); 
    tf[2].setToolTipText("Enter Your Birthday"); 
    add(tf[2]); 

    l[3] = new JLabel("Address: "); 
    l[3].setFont(new Font("Calibri Head",Font.BOLD,12)); 
    add(l[3]); 

    tf[3] = new JTextField(); 
    tf[3].setToolTipText("Enter Your Address"); 
    add(tf[3]); 

    l[4] = new JLabel("Contact Number: "); 
    l[4].setFont(new Font("Calibri Head",Font.BOLD,12)); 
    add(l[4]); 

    tf[4] = new JTextField(); 
    tf[4].setToolTipText("Enter Your Contact Number"); 
    add(tf[4]); 

    b[0] = new JButton("Submit"); 
    b[0].addActionListener(this); 
    add(b[0]); 

    b[1] = new JButton("Clear"); 
    b[1].addActionListener(this); 
    add(b[1]); 
} 

Так когда я ввод значения для всех и нажмите кнопку «Отправить» предыдущий класс будет закрыт, а другой класс будет открыт и там он будет показывать значение вещей Я ввел из предыдущего класса. , ,

Не имеет значения по умолчанию для полей JTextfield, я собираюсь ввести значение самостоятельно.

Как я могу передать (я имею в виду пропуск) значение для другого класса?

Вот код, я до сих пор:

Это мой метод:

public String name(){ 
return tf[0].getText(); 
} 

Это из другого класса:

public Form{ 
RegistrationForm form = new RegistrationForm(); 

JTextField name = form.name(); 
add(name); 
} 
+5

Вы не «бросаете что-нибудь». «throw» уже имеет смысл. Вы имеете в виду «проход»? – wchargin

+0

Я хочу получить значение, которое вставлено в JTextFields в классе RegistrationForm. , Могу ли я сделать это без gui? – user2226703

+0

@ пользователь2226703: это не имеет никакого смысла. Вы пытаетесь получить данные из компонента Swing GUI. Как это можно сделать без GUI? –

ответ

3

Вам не нужно бросать что-нибудь. Какой бы класс, который отображает это диалоговое окно, не будет ссылаться на экземпляр этого класса и может просто запросить состояние полей после возвращения диалогового окна. Это много проще, если диалоговое окно является модальным диалогом, таким как модальный JDialog или JOptionPane.

Например, посмотрите мой код в this example.

Редактировать
Кроме того, это меня смущает:

public Form{ 
    RegistrationForm form = new RegistrationForm(); 

    JTextField name = form.name(); 
    add(name); 
} 

ли этот код отображения объекта RegistrationForm? Действительно ли RegistrationForm является модальным JDialog? Очень необычно извлекать JTextField из одного GUI и добавлять его в другой, и я уверен, что вы не хотите этого делать. Опять же, то, что вы хотите сделать, это:

  • Покажите ваше RegistrationForm как модальный JDialog.
  • После того, как он возвращается, вызовите методы getter на объекте RegistrationForm, который извлекает строки, удерживаемые текстовыми полями объекта.

Для получения более подробной информации вам все равно нужно рассказать нам больше о вашем коде и вашей проблеме.

+0

Но можете ли вы передать значение другому классу? Я пытаюсь сделать метод, и он продолжает показывать нулевое значение. , , – user2226703

+0

@ user2226703: объекты Swing GUI могут получать информацию друг от друга, как и объекты без Swing. Вероятно, у вас есть ошибка в вашей программе, и вам нужно будет рассказать нам или показать нам больше, если мы сможем вам помочь. –

+0

Вот оно. , , Вы можете мне помочь? Можете ли вы заменить мой код или исправить? – user2226703