Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 16

Изображения в соответствии определенным элементам массива

31.03.2011, 18:38. Показов 1353. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые знатоки Java!

Надеюсь, что пишу в правильный раздел. Опыт работы с Java у меня небольшой и писать программы с графическим интерфейсом еще не приходилось. Моя проблема в следующем - имеется программа, где создан двумерный массив, заполненный целыми числами (размер массива - 4 на 4). Я бы хотел поставить им в соответствие определенные изображения, к примеру, 0 - это пустые клетки, 1 - закрашенные, 2 - клетки с изображением персонажа (картинка в формате jpg, либо png с прозрачным фоном). В итоге должно получиться нечто вроде шахматного поля, размер стороны каждой клетки поля - 150 пикселей. Каким образом можно реализовать графическую часть и какие необходимы для этого библиотеки?

Если у кого-то найдется похожий пример, буду очень благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2011, 18:38
Ответы с готовыми решениями:

Как отсортировать элементы массива в соответствии с определённым условием?
задание такое дан массив например 10 элементов(вообще там не важно может быть и 100 и 200 ) заполняем случайными числами от 1 до 10(от 1 до...

Обращение к определенным элементам vector'а
Всем привет! Появилось потребность в библиотеке vector. Подскажите, как обращаться к элементам вектора. Как обращаться к определенному...

Как обращаться к определённым элементам Listbox
Вообщем передо мной стоит задача: Выдать названия всех пьес, которые поставлены в театре с заданным названием, я сделал Лист бокс в котором...

3
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
01.04.2011, 07:52
Цитата Сообщение от Крячик Посмотреть сообщение
Каким образом можно реализовать графическую часть и какие необходимы для этого библиотеки?
Стандартных хватит вполне. Задаешь фрейму GridLayout в соответствии с размером массива. Потом кидаешь в него JLabel-ы с картинкой в зависимости от значения.
Нужно будет только продумать способ оповещения JLabel-ов об изменении значения элемента массива.
1
0 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 16
01.04.2011, 14:25  [ТС]
aleksandy, спасибо! Сразу извиняюсь за глупые вопросы. В NetBeans я создал фрейм, набросал на него 16 JLabel-ов. Исходный код имеет следующий вид:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class NewJFrame extends javax.swing.JFrame {
    public NewJFrame() {
        initComponents();
    }    
public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
 
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
//...................
    private javax.swing.JLabel jLabel16;
Я хотел бы сделать возможность перерисовки поля по нажатию клавиши (пробел, к примеру). Где мне расположить обработчик событий и как он должен выглядеть? Думаю, что для каждого jLabel нужно сделать функцию, которая устанавливает картинку в соответствии со значением элемента массива (адрес элемента передается как аргумент функции). Есть ли возможность сделать цикл для проверки каждого jLabel[i] (перебор i) или нужно будет описывать вызов функции проверки вручную для каждого лейбла? Каким образом лейблу присваивается изображение?

Добавлено через 1 час 15 минут
И еще вопрос, как прикрутить к этому проекту мою неграфическую программу? Программа содержит два класса - первый моделирует поле (двумерный массив и функции для работы с ним), второй - персонажа, который расположен на поле и передвигается по нему. В классе поля находится функция main, где создаются объекты этих двух классов и выполняется 25 шагов. Если нужен текст программы, могу добавить.
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
01.04.2011, 14:31
1. Лэйблы лучше хранить в массиве, поэтому предлагаю тебе писать все вручную, т.к. как замутить такое в дизайнере я хз.
2. Обработчик повесить на фрейм.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2011, 14:31
Помогаю со студенческими работами здесь

Вставка изображения по определенным координатам
Помогите решить вопрос. Нужно собрать изображение поверх другого. В программе реализовано перетаскивание компонента TImage....

Элементам массива меньше 10 присвоить нулевые значения, а элементам больше 20 присвоить 1
Дан одномерный массив из 15 элементов. Элементам массива меньше 10 присвоить нулевые значения, а элементам больше 20 присвоить 1. Вывести...

Элементам массива меньше 10 присвоить нулевые значения, а элементам больше 20 присвоить 1
Одномерный массив из 8 элементов заполнить случайным образом числами от 6 до 30. Элементам массива меньше 10 присвоить нулевые значения,...

Построение из двух, одного массива, при этом элементы второго массива переставлены в соответствии с правилом.
Всем привет, топик как заполнять тему что бы никто не отвечал я прочитал) Но всё же напишу, что информатика туго даётся, простые задачи...

Получить последовательность, включающую элементы массива А, которые равны элементам массива В.
<center><font color="purple">Помогите, пожалуйста, бедной девочке-первокурснице решить задачку))</font></center>:sorry::sorry: ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru