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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Записать значение элемент вектора 
:(
    Опции темы
kadet89
Дата 4.2.2012, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 18.9.2009

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



Код
class Struct 
{ 
    int num; 
    char symb;
}
Vector<Struct> v = new Vector<Struct>();

вектор содержит 2 типа данных интеджеры и чары. Мне нужно в num занести значение методом add. Несколько часов читал спецификацию и гуглил. Перепробовал кучу вариантов и кроме ошибок компиляции ничего не выходит.
Т.е. Вектор - чтото типо экзэмляра класса через который надо обратиться к num и symb. Пробовал так: v.num и так: v.num.add() - оба способа не работают.

Это сообщение отредактировал(а) kadet89 - 4.2.2012, 04:16
PM MAIL   Вверх
Mirkes
Дата 4.2.2012, 05:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 17



Цитата(kadet89 @ 4.2.2012,  01:02)
Код
class Struct 
{ 
    int num; 
    char symb;
}
Vector<Struct> v = new Vector<Struct>();

вектор содержит 2 типа данных интеджеры и чары. Мне нужно в num занести значение методом add. Несколько часов читал спецификацию и гуглил. Перепробовал кучу вариантов и кроме ошибок компиляции ничего не выходит.
Т.е. Вектор - чтото типо экзэмляра класса через который надо обратиться к num и symb. Пробовал так: v.num и так: v.num.add() - оба способа не работают.

Предложеное Вами обращение к вектру невено.
Вектор - коллекция объектов (в Вашем случае объектов типа Structure.

я возможно ошибаюсь, но по моему Ваш класс Structure недоопределен.

Скорее всего следовало делать так
Код

public class Struct{
     public int num;
     public char symb;

     public Struct(int aNum, char aChar){
           num=aNum;
           char=aChar;
     }
}

В этом случае мы имеем конструктор класса.

Вектор описан нормально.

Фрагмент добавления записи в вектор
Код

    v.add(new Struct(10,'a'));


Фрагмент чтения значения num из k-й записи вектора
Код

      int n=v.get(k).num;

С char аналогично.

ВАЖНО. Поля num и symb определены у класса Struct а не у вектора.
Вектор хороший аналог массива (но не в коем случае не массив!) и для обращения к одному из элементов надо указать индекс!



--------------------
Mirkes
PM MAIL   Вверх
Pawl
Дата 4.2.2012, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 28



Вот так тоже работает:
Код

import java.util.Vector;

public class TestVector {
    class Struct 
    { 
        int num; 
        char symb;
    }
    
    Vector<Struct> v = new Vector<Struct>();
    
    {
        v.add(new Struct());
        v.add(new Struct());
    }
            
    public static void main(String[] args) {
        TestVector tv = new TestVector();
        tv.v.get(0).num = 5;
        tv.v.get(0).symb = 'c';
        tv.v.get(1).num = 3;
        tv.v.get(1).symb = 'b';        
        System.out.println(tv.v.get(0).num);
        System.out.println(tv.v.get(0).symb);
        System.out.println(tv.v.get(1).num);
        System.out.println(tv.v.get(1).symb);        
    }
}
 Правда, это не есть хороший стиль программиртвания smile 


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
kadet89
Дата 4.2.2012, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 18.9.2009

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



А если у меня не char а массив чаров
public char[] symb = new char[8]
И я хочу добавить в них допустим слово abcd, как это сделать?
Если вместо 'a' указать "abcd" - это уже string. Надо както так { '', '' } или как?

Это сообщение отредактировал(а) kadet89 - 4.2.2012, 15:52
PM MAIL   Вверх
Pawl
Дата 4.2.2012, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 28



Цитата(kadet89 @  4.2.2012,  15:51 Найти цитируемый пост)
И я хочу добавить в них допустим слово abcd, как это сделать?

Код

public char[] symb = {'a', 'b', 'c', 'd'};

или так
Код

String s = "abcd";
public char[] symb = s.toCharArray();



--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
kadet89
Дата 4.2.2012, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 18.9.2009

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



Код
    public class Struct {
        public int num; public String str1, str2, str3, str4, str5;
        public Struct(int anum, String astr1, String astr2, String astr3, String astr4, String astr5)
        {
            num = anum; str1 = astr1; str2 = astr2; str3 = astr3; str4 = astr4; str5 = astr5;
        }
    }
    Vector<Struct> v = new Vector<Struct>();
    Vector v2 = new Vector ();


Заполняю:
v.add(new Struct(1, "2", "3", "4", "5", "6" ));
        v2.addElement("Title1");
        v2.addElement("Title2");
        v2.addElement("Title3");
        v2.addElement("Title4");
        v2.addElement("Title5");
        v2.addElement("Title6");
Компилится нормально, без ошибок.
Но при попытке заполнить заранее созданную пустую, но рабочую JTable программа перестает запускаться.
Была пустая таличка:
//searchresults = new JTable(22,4);
Сделал так и теперь ничего не работает:
searchresults = new JTable(v,v2);

Проверял v и v2 v.get(0).num  выдает 1, т.е. вроде вектор рабочий
В консоль ничего не пишет, просто выводится что ошибка

Это сообщение отредактировал(а) kadet89 - 4.2.2012, 20:33
PM MAIL   Вверх
Skynin
Дата 4.2.2012, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 6
Всего: 10



Цитата

Но при попытке заполнить заранее созданную пустую, но рабочую JTable программа перестает запускаться.
Была пустая таличка:
//searchresults = new JTable(22,4);
Сделал так и теперь ничего не работает:
searchresults = new JTable(v,v2);

Проверял v и v2 v.get(0).num  выдает 1, т.е. вроде вектор рабочий
В консоль ничего не пишет, просто выводится что ошибка

Описание выдаваемой ошибки нужно приводить.
А также код который вызывает такую ошибку.
Телепаты в природе очень редко встречаются чтобы на них рассчитывать.

Во-вторых JTable работает с моделью TableModel, которую и создает при вызове new JTable(22,4);
А вот что вы передаете new JTable(v,v2); непонятно. Наверное хотите вызвать конструктор:
JTable(Vector rowData, Vector columnNames)
Смотрим в доку, и видим пример как должен быть организован rowData:
((Vector)rowData.elementAt(1)).elementAt(5);
Ваш rowData такой? массив массивов?

и что за проверка - v.get(0).num? JTable ничего знать не знает ни о каких полях "num"

Рекомендую пройти Trail: Creating a GUI With JFC/Swing
Или, если сложности с английским - прочесть книжку:
Г. Шилдт "SWING: руководство для начинающих". Есть в инете.




Это сообщение отредактировал(а) Skynin - 4.2.2012, 21:03
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
kadet89
Дата 4.2.2012, 21:09 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 18.9.2009

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




Модератор: Сообщение скрыто.

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

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

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


 




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


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

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