С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
1

Календарь на java

16.12.2015, 22:11. Показов 1882. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую мегакодеры и так нужно для курсовой создать простой календарь на основании таблицы где заголовками полей будет пн(понедельник) вт(вторник) итд. а в самих строках таблицы будут числа, показывался текущий день и возле таблицы две стрлки для смены месяца все ето надо организовать визуально так как опыта с библиотеками Date не имею и в общем не могу розобратся с ними прошу написать простенький календарь как было описано выше приме скину в фото ниже
Изображения
 
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2015, 22:11
Ответы с готовыми решениями:

Календарь на java
Подскажите есть ли возможность создать всплывающий календарь с возможностью выбора даты на java...

Календарь в Java swing
Здравствуйте Делаю календарь. подключила библиотеку jdatapicker.jar. Как написано в интернете...

Календарь, похожий на Google календарь, в C++ Builder 6
Доброго времени суток. Может кто-то сталкивался с созданием календаря на неделю. Нужно чтоб...

Exception in thread "main" java.lang.IllegalArgumentException: illegal component position at java.desktop/java.awt.Cont
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import...

3
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
17.12.2015, 18:11  [ТС] 2
мне надо только построить таблицу с календарем больше ничего не надо саму компоненту jtable итд я знаю но вот как задать кодом чтобы к каждому месяцу было 30-31 день по разному и чтобы вручную не вводить дни всех месяцов я хз
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
18.12.2015, 12:13 3
Модель таблицы с тестом к ней. Форматтеры сам прикрутишь.
Кликните здесь для просмотра всего текста
Java
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
import static java.util.Objects.*;
 
import static org.junit.Assert.*;
 
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.Month;
import java.time.YearMonth;
import java.time.format.TextStyle;
import java.time.temporal.ChronoField;
import java.time.temporal.TemporalField;
import java.time.temporal.WeekFields;
import java.util.Locale;
 
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
 
import org.junit.Test;
 
public class CalendarTableModelTest {
 
    @Test
    public void testDecember2015() {
        final YearMonth ym = YearMonth.of(2015, Month.DECEMBER);
        final CalendarTableModel model = new CalendarTableModel(ym);
        final LocalDate firstDay = ym.atDay(1);
        int delta = 0;
        // november 2015-11-30
        assertNull(model.getValueAt(0, 0));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(0, 1));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(0, 2));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(0, 3));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(0, 4));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(0, 5));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(0, 6));
 
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(1, 0));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(1, 1));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(1, 2));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(1, 3));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(1, 4));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(1, 5));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(1, 6));
 
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(2, 0));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(2, 1));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(2, 2));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(2, 3));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(2, 4));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(2, 5));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(2, 6));
 
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(3, 0));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(3, 1));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(3, 2));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(3, 3));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(3, 4));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(3, 5));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(3, 6));
 
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(4, 0));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(4, 1));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(4, 2));
        assertEquals(firstDay.plusDays(delta++), model.getValueAt(4, 3));
        // friday == 2016-01-01
        assertNull(model.getValueAt(4, 4));
        // saturday == 2016-01-02
        assertNull(model.getValueAt(4, 5));
        // sunday == 2016-01-03
        assertNull(model.getValueAt(4, 6));
 
 
    }
 
    @Test
    public void testCurrentMonth() {
        final YearMonth ym = YearMonth.now();
        final LocalDate firstDay = ym.atDay(1);
        final CalendarTableModel model = new CalendarTableModel(ym);
 
        final int delta = CalendarTableModel.COLUMN_COUNT;
        for (int i = 0, deltaDay = 0, stop = ym.atEndOfMonth().getDayOfMonth(); i <= stop; i++) {
            final int row = i / delta;
            final int col = i - (row * delta);
 
            final Object day = model.getValueAt(row, col);
            if (day != null) {
                assertEquals(firstDay.plusDays(deltaDay++), day);
            }
        }
 
    }
 
    static class CalendarTableModel extends AbstractTableModel {
 
        private static final TemporalField WEEK_OF_MONTH = WeekFields.of(DayOfWeek.MONDAY, 1).weekOfMonth();
 
        private static final int COLUMN_COUNT = 7;
 
        private YearMonth yearMonth;
 
        private final int delta;
        private final int maxWeekOfMonth;
 
        public CalendarTableModel(final YearMonth ym) {
            this.yearMonth = requireNonNull(ym);
            this.delta = ym.atDay(1).get(ChronoField.DAY_OF_WEEK);
            this.maxWeekOfMonth = ym.atEndOfMonth().get(WEEK_OF_MONTH);
        }
 
        public void setYearMonth(final YearMonth yearMonth) {
            this.yearMonth = yearMonth;
            fireTableDataChanged();
        }
 
        public YearMonth getYearMonth() {
            return this.yearMonth;
        }
 
        @Override
        public int getRowCount() {
            return this.maxWeekOfMonth;
        }
 
        @Override
        public int getColumnCount() {
            return COLUMN_COUNT;
        }
 
        @Override
        public String getColumnName(final int column) {
            return DayOfWeek.of(column + 1).getDisplayName(TextStyle.SHORT, Locale.getDefault());
        }
 
        @Override
        public Object getValueAt(final int rowIndex, final int columnIndex) {
            checkIndexes(rowIndex, columnIndex);
            final int col = columnIndex + 2;
            final int day = rowIndex * COLUMN_COUNT + (col - this.delta);
            return (1 <= day && day <= 31) ? this.yearMonth.atDay(day) : null;
        }
 
        private void checkIndexes(final int rowIndex, final int columnIndex) {
            if (rowIndex < 0 || rowIndex >= getRowCount()) {
                throw new IllegalArgumentException("wrong row index: " + rowIndex);
            }
            if (columnIndex < 0 || columnIndex >= getColumnCount()) {
                throw new IllegalArgumentException("wrong column index: " + columnIndex);
            }
        }
 
    }
 
    public static void main(final String[] args) {
        final JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(new JScrollPane(
            new JTable(
                new CalendarTableModel(YearMonth.now())
            )
        ));
 
        f.setLocationRelativeTo(null);
        f.pack();
 
        f.setVisible(true);
    }
}
0
111 / 98 / 84
Регистрация: 18.12.2015
Сообщений: 567
18.12.2015, 19:29 4
Привет! Очень интересная тема.
Недавно работал с такой темой. Рекомендую использовать библиотеку jdatepicker.
Вот ссылочка на сайт: http://sourceforge.net/projects/jdatepicker/
0
18.12.2015, 19:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2015, 19:29
Помогаю со студенческими работами здесь

Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ?
Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ? Ответье, плиз, новичку, по MSDN...

Ошибка reference to List is ambiguous; both interface java.util.List in package java.util and class java.awt.List in...
Почему кгда я загружаю пакеты awt, utill вместе в одной проге при обьявлении елемента List я ловлю...

календарь
Здравствуйте! Мне нужно сделать календарь событий. Даты на которых есть события должны быть...

Календарь
Дано: 31 декабря 2015. Подскажите пожалуйста, как при изменении числа месяца на +1 увеличилось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru