Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> массив JTextField-ов и прочих... 
V
    Опции темы
Metal_Heart
Дата 31.3.2005, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12



Здрасте многоуважаемые..
как вы можете заметить я крутой программер smile

вот и скажите мне, пожалуйста, почему компилятор выдает ошибку
в строке MAIN-метода:
form.JText[i].setText(st[i].GetText());

массив JTextField-ов я объявил и проинициализировал вроде, а обращатся к нему не могу?

Код

public class form
{
  private JPanel mainPanel;
  private JCheckBox checkBox1;
  private JTextField textField1;
  private JLabel label1;
  private JPanel panel1;
  private JCheckBox checkBox2;
  private JTextField textField2;
  private JLabel label2;
  private JPanel panel2;
  private JPanel panel3;
  private JCheckBox checkBox3;
  private JCheckBox checkBox4;
  private JTextField textField3;
  private JTextField textField4;
  private JLabel label3;
  private JLabel label4;
  private JButton button1;
  private JButton button2;
  private JTextField JText = new JTextField();

  public form()
  {
    JText.add(textField1);
    JText.add(textField2);
    JText.add(textField3);
    JText.add(textField4);
  }

  public static void main(String[] args)
  {
    final form form = new form();
    final JFrame frame = new JFrame("any form");
    frame.setContentPane(form.mainPanel);

    form.label1.setText("abc");

    struct[] st = new struct[4];
    for(int i=0;i<4;i++)
    {
     st[i] = new struct();
     st[i].SetID(i+1);
     st[i].SetText("abc"+new Integer(i).toString());
     form.JText[i].setText(st[i].GetText());
    }

    frame.pack();
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.show();
  }
}



--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
batigoal
Дата 31.3.2005, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Так JText-то у тебя не массив, а обычная переменная:
Цитата(Metal_Heart @ 31.3.2005, 17:33)
private JTextField JText = new JTextField();


Добавлено @ 18:00
Кстати, классы принято называть с большой буквы smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Metal_Heart
Дата 1.4.2005, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12



Да, спасибо, исправил!

Скажи пожалуйста, разве этого мало?
Компилятор выбрасывает сообхение "java.lang.NullPointerException"

Код

  private JTextField[] JText = new JTextField[4];

  public form()
  {
    JText[0].add(textField1);
    JText[1].add(textField2);
    JText[2].add(textField3);
    JText[3].add(textField4); 
  }




--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
Metal_Heart
Дата 1.4.2005, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12




пришлось добавить
Код

for(int i=0;i<4;i++){JText[i]=new JTextField();}




--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
batigoal
Дата 1.4.2005, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Конечно. Ведь когда ты объявляешь массив
Код

private JTextField[] JText = new JTextField[4];

, то каждая ссылка JText[i] по умолчанию инициализируется значением null. А потом ты пытался вызвать .add(textField1); на еще не созданном объекте.



--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ZAVS
Дата 1.4.2005, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

Репутация: нет
Всего: 1



есть более красивый способ инициализировать элеманты масива

Цитата
java.util.Arrays.fill( JText , new JTextField() ) ;


smile
--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
batigoal
Дата 1.4.2005, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата(ZAVS @ 1.4.2005, 14:48)
java.util.Arrays.fill( JText , new JTextField() ) ;

Не знал, спасибо.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ZAVS
Дата 1.4.2005, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

Репутация: нет
Всего: 1



пожалуйста smile

но он удобен для примитивов

для обьектов он копирует ссылки а не обьекты!
так что для этого примера не годится( я поспешилsmile)

Это сообщение отредактировал(а) ZAVS - 1.4.2005, 15:33
--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
Metal_Heart
Дата 1.4.2005, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12



Да, действительно красиво!


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
Domestic Cat
Дата 2.4.2005, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Это так, для примеру:
Код

import javax.swing.*;

public class Example
{
    public static void main(String... a) throws Exception
    {
        JTextField[] array = new JTextField[13];
        fill(array, JTextField.class);
        for (Object o : array) System.out.println(o.hashCode());
    }    
    
    public static void fill(Object[] array, Class a) throws Exception
    {
        for (int i = 0; i < array.length; i++)
        {
            array[i] = a.newInstance();
        }    
    }
}

smile


--------------------

PM   Вверх
batigoal
Дата 3.4.2005, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Это в синтаксисе пятой версии, да?
Цитата(Domestic @ 2.4.2005, 22:39)
main(String... a)

Цитата(Domestic @ 2.4.2005, 22:39)
for (Object o : array)

?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Domestic Cat
Дата 3.4.2005, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Да.


--------------------

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.