Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перерисовка JButton, Реализация плавного перемешения кнопки! 
V
    Опции темы
TWoVKP
Дата 25.8.2009, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 29.4.2009

Репутация: 1
Всего: 1



Ну вообшем такая задача, есть панелька на которой расположенно много JButton, ну что то наподобие пятнашек, ну вот одно поле пустое, при нажатии на JButton  который находится рядом с пустым местом - меняется положение на панели той кнопки которая была нажата! Всё работает замечательно, но хотелось бы как нибудь пережвижение кнопки сделать плавным, как будто скользит по панельки! 
Короче пробовал менять координаты кнопки в цикле, и задержку делал с помошью Thread.sleep(100), но как известно Thread.sleep(100) заставлет данный Thread просто заснуть, тое сть все перерисовки которые происходят в цикле, не будут поисходить пока Thread не проснется.
А как только просыпается то кнопка уже стоит сразу на своём метсе где и положенно её быть.

Как такое можно реализовать, помогите PLEAS!!!   smile 
Если можно то с примером!   smile 
Буду очень благодарен!   smile 

PM MAIL   Вверх
fixxer
Дата 25.8.2009, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 15
Всего: 27



делай Thread.sleep в другом потоке, а координаты меняй из EDT через invokeLater


--------------------
user posted image
PM MAIL ICQ   Вверх
TWoVKP
Дата 25.8.2009, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 29.4.2009

Репутация: 1
Всего: 1



fixxer 

Что то как то смутно всё это предстовляется!!!
Не могли не больщой примерчик с invokeLater запостить???

PLEAS!!! smile 
PM MAIL   Вверх
fixxer
Дата 25.8.2009, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 15
Всего: 27



Что-то типа такого:

Код

import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
    final JFrame f = new JFrame("Test");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    final JButton b = new JButton();
    b.setAction(new AbstractAction("Move me") {

        @Override
        public void actionPerformed(ActionEvent e) {
        new Thread(new Runnable() {
            @Override
            public void run() {
            for (int i = 1; i < 100; i++) {
                try {
                Thread.sleep(50);
                SwingUtilities.invokeLater(new Runnable() {
                    @Override
                    public void run() {
                    b.setLocation(b.getLocation().x + 1, b.getLocation().y);
                    }
                });
                } catch (InterruptedException e1) {
                e1.printStackTrace();
                }
            }
            }
        }).start();
        }

    });
    f.getContentPane().setLayout(null);
    b.setLocation(0, 0);
    b.setSize(100, 20);
    f.getContentPane().add(b);

    f.setBounds(100, 100, 640, 480);
    f.setVisible(true);
    }

}



--------------------
user posted image
PM MAIL ICQ   Вверх
TWoVKP
Дата 25.8.2009, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 29.4.2009

Репутация: 1
Всего: 1



fixxer

Спасибочки, сегодня вечерком потестю, сейчас на работе нахожусь - времени особо нет!
Вечерком отпишусь!!!

fixxer -   smile  smile  smile  smile  smile  smile 
PM MAIL   Вверх
TWoVKP
Дата 25.8.2009, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 29.4.2009

Репутация: 1
Всего: 1



Опробовал, работает все как надо, ОГРОМНОЕ СПАСИБО ПОЛЬЗОВАТЕЛЮ fixxer, за быструю и компетентную помощь!

Респект!  smile  smile  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0421 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.