powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Элементы класса
4 сообщений из 4, страница 1 из 1
Элементы класса
    #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
Элементы класса
    #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
Элементы класса
    #32693172
\/lad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, это пять недель, а дней 7. Просто 1 число не всегда выпадает на понедельник. Так удобней обрабатывать.
...
Рейтинг: 0 / 0
Элементы класса
    #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
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Элементы класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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