Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Элементы класса / 4 сообщений из 4, страница 1 из 1
14.09.2004, 10:35
    #32693134
\/lad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Элементы класса
Всем привет !!!

Столкнулся я недавно с одной проблемкой, просидел до позна но так и не решил, видать опыта мало, вот решил написать на форум.

Проблема в следующем:

Есть класс, в нем есть 3-мерный массив.
Есть функция которая его заполняет (инициализирует).
Есть функция, которая его использует его данные (выводит).
Когда я отдельно вызываю функцию инициализации, а затем функцию, которая данные выводит, ничего не получается, массив заполнен элементами null.
Но если я вызываю функцию инициализации, внутри функции которая данные выводит, все проходит на ура.
Подскажите пожалуйста что не так?

Исходники:

public class JspCalendar extends Object
{
private String ID = "Calendar";
private ServletRequest request = null;
private ServletResponse response = null;
private JspWriter out = null;
private String [][][] d = new String [5][7][3]; // 0 - номер дня, 1 - цвет фона, 2 - цвет шрифта
private Calendar cal = GregorianCalendar.getInstance();
public String CurDayBGCol = "Yellow";
public String CurDayFCol = "RED";

public JspCalendar(PageContext pageContext, String id)
{
if (id != null) ID = id;
if (pageContext != null)
{
request = pageContext.getRequest();
response = pageContext.getResponse();
out = pageContext.getOut();
}
LoadDays();
}

private void LoadDays()
{
Calendar cl = (Calendar)cal.clone();
int first_day = 1;
int max_day = cl.getActualMaximum(Calendar.DAY_OF_MONTH);
cl.set(Calendar.DAY_OF_MONTH,1);
cl.set(Calendar.WEEK_OF_MONTH,1);
int first_day_in_weak = cl.get(Calendar.DAY_OF_WEEK);



for (int i = 0; i < d.length; i++)
{
for (int j = 0; j < d .length; j++)
{
d[j][0] = "";
d[j][1] = "";
d[j][2] = "";
}
}

for (int i = 0; i < d.length; i++)
{
for (int j = first_day_in_weak; j < d.length; j++)
{
d[j][0] = String.valueOf(first_day);
if (first_day == max_day)break;
first_day ++;
}
first_day_in_weak = 0;
}
}

private boolean setCurDay()
{
String day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH));
return setColor(day, CurDayBGCol, CurDayFCol);
}

public boolean setColor(String day, String BGColor, String FColor)
{
if (day == null) return false;
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1");
for (int i = 0; i < d.length; i++)
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2");
for (int j = 0; j < d.length; j++)
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!! 3");
System.out.println("d[" + i + "][" + j + "][0] " + d[j][0]);
if (day.equals(d[j][0]))
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!! 4");
d[j][1] = BGColor;
d[j][2] = FColor;
return true;
}
}
}
return false;
}

public String GetContent()
{
String ret = "";
LoadDays();

//////////////////////////////////////////////////////////////////////////////////////////////////
// код //
//////////////////////////////////////////////////////////////////////////////////////////////////

for (int i = 0; i < d.length; i++)
{
ret = ret + " <tr>" + "\n";
for (int j = 0; j < d.length; j++)
{
String bgcolor = "";
String fscolor = "";
String fecolor = "";
if (!("".equals(d[j][1]))) bgcolor = " bgcolor=\"" + CurDayBGCol + "\" ";
if (!("".equals(d[j][2]))) fscolor = " <font color=" + CurDayFCol + "> ";
if (!("".equals(d[j][2]))) fecolor = " </font> ";

ret = ret + "<th" + bgcolor + "><a class=\"calcd\" href=\"#\">" + fscolor + d[j][0] + fecolor + "</a></th>" + "\n";
}
//////////////////////////////////////////////////////////////////////////////////////////////////
// код //
//////////////////////////////////////////////////////////////////////////////////////////////////
return ret;
}
}
...
Рейтинг: 0 / 0
14.09.2004, 10:45
    #32693162
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Элементы класса
\/ladВсем привет !!!

Столкнулся я недавно с одной проблемкой, просидел до позна но так и не решил, видать опыта мало, вот решил написать на форум.

Проблема в следующем:

Есть класс, в нем есть 3-мерный массив.
Есть функция которая его заполняет (инициализирует).
Есть функция, которая его использует его данные (выводит).
Когда я отдельно вызываю функцию инициализации, а затем функцию, которая данные выводит, ничего не получается, массив заполнен элементами null.
Но если я вызываю функцию инициализации, внутри функции которая данные выводит, все проходит на ура.
Подскажите пожалуйста что не так?

Исходники:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
public class JspCalendar extends Object
{
private String ID = "Calendar";
private ServletRequest request = null;
private ServletResponse response = null;
private JspWriter out = null;
private String [][][] d = new String [5][7][3];  // 0 - номер дня, 1 - цвет фона, 2 - цвет шрифта 
private Calendar cal = GregorianCalendar.getInstance();
public String CurDayBGCol = "Yellow";
public String CurDayFCol = "RED";

public JspCalendar(PageContext pageContext, String id)
{
if (id != null) ID = id;
if (pageContext != null)
{
request = pageContext.getRequest();
response = pageContext.getResponse();
out = pageContext.getOut();
}
LoadDays();
}

private void LoadDays()
{
Calendar cl = (Calendar)cal.clone();
int first_day = 1;
int max_day = cl.getActualMaximum(Calendar.DAY_OF_MONTH);
cl.set(Calendar.DAY_OF_MONTH,1);
cl.set(Calendar.WEEK_OF_MONTH,1);
int first_day_in_weak = cl.get(Calendar.DAY_OF_WEEK);



for (int i = 0; i < d.length; i++)
{
for (int j = 0; j < d.length; j++)
{
d[i][j][0] = "";
d[i][j][1] = "";
d[i][j][2] = "";
}
}

for (int i = 0; i < d.length; i++)
{
for (int j = first_day_in_weak; j < d[i].length; j++)
{
d[i][j][0] = String.valueOf(first_day);
if (first_day == max_day)break;
first_day ++;
}
first_day_in_weak = 0;
}
}

private boolean setCurDay()
{
String day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH));
return setColor(day, CurDayBGCol, CurDayFCol);
}

public boolean setColor(String day, String BGColor, String FColor)
{
if (day == null) return false;
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1");
for (int i = 0; i < d.length; i++)
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2");
for (int j = 0; j < d[i].length; j++)
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!! 3");
System.out.println("d[" + i + "][" + j + "][0] " + d[i][j][0]);
if (day.equals(d[i][j][0]))
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!! 4");
d[i][j][1] = BGColor;
d[i][j][2] = FColor;
return true;
}
}
}
return false;
}

public String GetContent()
{
String ret = "";
LoadDays();

 [i]////////////////////////////////////////////////////////////////////////////////////////////////// 
 // код // 
 ////////////////////////////////////////////////////////////////////////////////////////////////// 

for (int i = 0; i < d.length; i++)
{
ret = ret + " <tr>" + "\n";
for (int j = 0; j < d.length; j++)
{
String bgcolor = "";
String fscolor = "";
String fecolor = "";
if (!("".equals(d[i][j][1]))) bgcolor = " bgcolor=\"" + CurDayBGCol + "\" ";
if (!("".equals(d[i][j][2]))) fscolor = " <font color=" + CurDayFCol + "> ";
if (!("".equals(d[i][j][2]))) fecolor = " </font> ";

ret = ret + "<th" + bgcolor + "><a class=\"calcd\" href=\"#\">" + fscolor + d[i][j][0] + fecolor + "</a></th>" + "\n";
}
 [i]////////////////////////////////////////////////////////////////////////////////////////////////// 
 // код // 
 ////////////////////////////////////////////////////////////////////////////////////////////////// 
return ret;
}
}


офф: в неделе пять дней?
...
Рейтинг: 0 / 0
14.09.2004, 10:47
    #32693172
\/lad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Элементы класса
Нет, это пять недель, а дней 7. Просто 1 число не всегда выпадает на понедельник. Так удобней обрабатывать.
...
Рейтинг: 0 / 0
16.09.2004, 12:38
    #32697456
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Элементы класса
Клёвый копипаст :)

for (int i = 0; i < d.length; i++) {
for (int j = 0; j < d.length; j++) {
d[j][0] = "";
d[j][1] = "";
d[j][2] = "";
}
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Элементы класса / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]