| imho.ws |
![]() |
|
|
|
# 2 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
модификатор public - класс видно из всего приложения
package local (default) - инстанс класса можно создать только в данном пакадже модификатор protected - видно только наследникам модификатор private - видно только внутри класса то что ты хочешь сделать - можно добиться грамотным распределением классов по пакетам, больше никак... т.е. кладешь в самый глубокий пакадж классы с пакадж локал доступом, а наследников кладешь в пакадж уровнем выше... вложенность только в глубину работает
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|
|
|
|
# 3 |
|
Newbie
Регистрация: 19.11.2004
Сообщения: 45
![]() |
Напишу в эту темя, тоже появе...
Короче проблемма такая.... в одном классе создан инт массив, этот же массив нужен и в другом классе, но когда я к нему обращаюсь, топишется java.lang.NullPointerException Вообшем структура кода примерно такая - public class first { public static int [][]massiv; public static void main(String[] args) { int[][] massiv = new int[count][2]; //zapolnjajetsja massiv } } class second { public void { System.out.println(first.massiv[0][0]); } } |
|
|
|
|
# 4 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
alexksei
А где создание объекта класса first? Или, раз у тебя в нем все сделано как static, то как минимум где вызов метода main, создающего (выделяющего память под) этот массив? Если нигде нет, то очень даже правильно ругается на NullPointerException. |
|
|
|
|
# 5 |
|
Newbie
Регистрация: 19.11.2004
Сообщения: 45
![]() |
Нету ни обьекта класса first, ни вызова метода майн....
А как это делается ? ... Ну если не сложно, обьясни как сделать и первое и второе ![]() Сразу еще один вопрос - у меня есть куча комбобоксов, текстфилдов и одна кнопка, при нажатии на которую должно считываться содержимое всех комбобоксов и текстфилдов.... Вообшем я в состоянии сделать только считывание с конкреного обьекта на котором произвелось действие... class guiexampleFrame extends JFrame implements ActionListener { guiexampleFrame() { JComboBox maakond = new JComboBox(maakonds); maakond.addActionListener(this); buttonpanel.add(sorteerimine); buttonpanel.add(maakond); buttonpanel.add(otstarve); buttonpanel.add(veekogu); buttonpanel.add(textfield1); buttonpanel.add(textfield2); } public void actionPerformed(ActionEvent e) { JComboBox cb = (JComboBox)e.getSource(); selectedItems[0]= (String)maakond.getSelectedItem(); System.out.print(selectedItems[0]); } |
|
|
|
|
# 6 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
Раз по какой-то причине ты объявил в первом классе все как static, то создавать объект класса first не надо, но память под массив надо выделить - это у тебя делается в методе main. Только не понятно что у тебя там за count.
Вызов метода main - это просто first.main(...). Но только опять же, судя по аргументам метода main класса first можно судить что это метод у тебя должен вызываться сразу при запуске программы, и массив у тебя должен сразу создаться. Тогда где вообще у тебя создается объект класса second чтобы пользовать массив в классе first? Это у тебя полный текст программы? Что ты хочешь осуществить и чем руководствовался, когда писал ту путаницу, что привел здесь? |
|
|
|
|
# 7 |
|
Newbie
Регистрация: 19.11.2004
Сообщения: 45
![]() |
НУ ессно текст не полный далеко, просто текст программы слишком большой и там много лишнего, не относящегося к проблеме....я просто общую структуру изобразил, чтоб было понятно откуда и куда следует массив...
main -запускается сразу, webcontent считывает файл(каунт - колво строк нужных, которые буду в массиве), они забиваются в массив, далее guiexamplFrame создает все кнопки и так далее, и exampleCanvas класс - его назначение нарисовать график по числам из массива.... Вообшемто программа выглядить даже чуть подругому, может это както прояснит ситуацию - public class first { public static int [][]massiv; public static void main(String[] args) { .... webcontent(); ..... JFrame frame = new guiexampleFrame(); .... } webcontertnt{ ..... int[][] massiv = new int[count][2]; ... //zapolnjajetsja massiv} } } class guiexampleFrame extends JFrame implements ActionListener { .... guiexampleFrame() { ....... drawpanel = new examplecanvas();}} class examplecanvas extends Canvas { .... public void paint(Graphics g) { {..... System.out.println(first.massiv[0][0]); } } Вот.. более подробная схема, может поможет пролить свет....Если надо, то могу прислать полную версию программы....Ну очень надо мне её закончить.... Прикрепил код, там сильная каша, много всяких ненужных переменных и прочего, не обращайте внимания )) Главное - помогите
Последний раз редактировалось alexksei; 22.11.2006 в 19:18. |
|
|
|
|
# 9 |
|
Newbie
Регистрация: 18.04.2003
Адрес: Moskow
Сообщения: 49
![]() ![]() ![]() |
alexksei:public static int [][]massiv;
попробуй убрать static, а к массиву обращаться по ссылке на него (передать через параметр)
__________________
Требования террористов о выкупе выполнены. Террористы выкупаны и уложены баиньки. |
|
|
|
|
# 10 | |
|
Newbie
Регистрация: 19.11.2004
Сообщения: 45
![]() |
Цитата:
Нет, так тоже не получится, обращение к тому классу идет еще из другого класса.... Вообшем эту проблемму решил, воспользовался аррейлистами, не знаю почему, но с ними такой проблеммы не было.... Проблеммы с actionlistener так и осталась.... не могу сделать так чтобы при нажатии на кнопку считывалось все что введено в остальных комбобоксах и текстфилдах
|
|
|
|
|
|
# 11 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
alexksei
У тебя вообще какая-то ерунда написана в коде. В классе guiexampleFrame ты описываешь свои сомбобоксы и текстфилды как _члены_ класса. Код:
JTextField textfield1, textfield2, textfield3;
JComboBox maakond,otstarve,veekogu,sorteerimine;
Код:
JComboBox maakond = new JComboBox(maakonds);
JComboBox otstarve = new JComboBox(otstarved);
JComboBox veekogu = new JComboBox(veekogud);
JComboBox sorteerimine = new JComboBox(sorteerimised);
Потом, раз они будут членами класса, то и доступны они будут в любом методе этого класса. В том числе в обработчике события actionPerformed(ActionEvent e). И тебе не надо пататься вытащить их из аргумента события Код:
(JComboBox)e.getSource() Код:
selectedItems[0]= (String)maakond.getSelectedItem();
selectedItems[1]= (String)otstarve.getSelectedItem();
...
|
|
|
|
|
# 12 |
|
Newbie
Регистрация: 19.11.2004
Сообщения: 45
![]() |
ЕЖ, ОГРОМНОЕ спасибо, еслибы ты знал сколько я времени убил на это, топтался на одном месте
.... Значит и с массивом была таже проблемма, я его обьявлял там, а создавал другой с тем названием просто =)) ТОлько как создать массив то правильно чтоб он был именно то ? Я делал так - public static int [][]allMassiv; - в классе int [][]allMassiv = new int[count+1][2]; - это уже в майн, когда нашел каунт... но видимо создается другой массив с такимже названием опятьже.... |
|
|