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

Как перемешать кнопки в окне (наподобие пятнашек)

14.03.2013, 13:45. Показов 1399. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть окно с 16-ю кнопками. Каким образом можно их перемешивать? чтобы стали неупорядоченные. Вот часть программы, которая формирует и выводит на экран 16 кнопок.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package prilozh;
import java.awt.*;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Prilozh {
 
public static void main(String[] arg){
        JFrame f = new JFrame("Button");
        f.setLayout(new GridLayout(4, 4, 2, 2));
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        JButton[] buttons = new JButton[16];
        for (int i = 0; i<16; i++){
            buttons[i] = new JButton(i+"");
            f.add(buttons[i]);
        }
 
        f.pack();
        f.setVisible(true);
    }
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.03.2013, 13:45
Ответы с готовыми решениями:

Как по нажатию кнопки в открытом новом окне сделать рефреш в том окне откуда оно было открыто?
Открываю скриптом новое окно. Как по нажатию кнопки в открытом новом окне сделать рефреш в том окне откуда оно было открыто.

Как сделать так, чтобы при нажатии кнопки на дочернем окне, в родительском окне открылась какая-нибудь страница ?
Как сделать так, чтобы при нажатии кнопки на дочернем окне, в родительском окне открылась какая-нибудь страница ? При этом, поп-ап нужно...

Как при нажатии "Старт" перемешать кнопки?
Вот код игры &quot;пятнашки&quot;. Когда нажимаешь на кнопку &quot;старт&quot;, кнопки с цифрами остаются на своих местах( то есть по- порядку) , и...

5
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
14.03.2013, 15:25
ну можно инициализировать кнопки в правильном положении (1-пусто), а потом сдвигать это "пусто" в направлении определяемом рандомом n раз. я головоломками не увлекался, и мне кажется если тупо случайно их расставить - головоломка потом может не сойтись
0
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 40
14.03.2013, 15:32  [ТС]
Цитата Сообщение от AckiyBolt Посмотреть сообщение
ну можно инициализировать кнопки в правильном положении (1-пусто), а потом сдвигать это "пусто" в направлении определяемом рандомом n раз. я головоломками не увлекался, и мне кажется если тупо случайно их расставить - головоломка потом может не сойтись
так дело в том, что у меня не будет это пусто, это не пятнашки. Мне надо 16 цифр расставить вращением квадратов 2х2. Но это уже другой вопрос, я не придумала еще как их перемешивать. Головоломка сойдется при любом раскладе (по крайней мере, так должно быть).
0
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
14.03.2013, 15:41
а-а... затупил
тем же рандомом выбирать, например, левую верхнюю кнопку в квадрате, выбирать направление вращения и количество шагов (тем же рандомом и если требуется) и обновлять координаты кнопок в соответствии с новым расположением
0
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 40
14.03.2013, 15:55  [ТС]
Цитата Сообщение от AckiyBolt Посмотреть сообщение
а-а... затупил
тем же рандомом выбирать, например, левую верхнюю кнопку в квадрате, выбирать направление вращения и количество шагов (тем же рандомом и если требуется) и обновлять координаты кнопок в соответствии с новым расположением
а чтобы обратиться к кнопке, может, лучше двумерный массив взять? Или без особой разницы.. я просто размышляю..
0
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
14.03.2013, 15:59
да все равно в общем-то. вам решать какую логику вам будет удобней писать. или двумерный массив, либо в класс кнопки добавить поле отображающее позицию кнопки
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.03.2013, 15:59
Помогаю со студенческими работами здесь

Перемешать кнопки Delphi
Доброго времени суток) Возник вопрос - на Panel есть несколько кнопок, к примеру Button1, Button2,Button3,Button4,Button5. И идут они...

Как поменять кнопки навигации в окне?
подскажите,пожалуйста,как поменять кнопки навигации в окне (допустим я скачал тему и там файлик -explorer frame dll),что куда кидать?в...

Как расположить 2 кнопки и таблицу в окне
from PyQt5.QtWidgets import * import Model as Mod class Win2(QMainWindow): # Основной класс интерфейса def...

Как создать объект в виде кнопки в дочернем окне.
Вопрос такой.. Каким образом можно создать кнопку, в дочернем окне, или любой другой объект. К примеру создаю дочернее окно из...

Как можно чтобы в диалогом окне были кнопки Yes и NO?
Добрый день! Может кто-то сталкивался с такой задачей: ' в диалогово окне вместо стандартных кнопок Ok и Cancel, показвать кнопки Yes и...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru