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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с mouseDragged & paintComponent, картинка движится за мышкой 
:(
    Опции темы
newsl
Дата 7.3.2011, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



всем здраствуите , мине надо как проект написать программу каторая управлает базои данны , я написал 3 класса ето 1: школа 2: комната 3: ПК  
в ПК находится картинка ну и методы гет и сет , патом в комнате находится лист с этими КП и тагже методы гет сет каторые нужны и в школе находится лис с комнатами ..
вот тепер я всё это рисую комната ето у меня отделная панел я в ней рисую все компы каторые есть но когда начинаю двигать один из них то получается так что картинка движется позади мышки тоесть неуспевает за курсором чо делать ? понимаю что надо как можно менше рисовать тода будет всё тип топ но ведь это всё тоже надо рисовать вот в чем проблема 
прошу прошение за правописание smile 

 
Код

 public void paintComponent(Graphics g)
   {  
      super.paintComponent(g);
      Graphics2D g2 = (Graphics2D) g;
      setBackground(Color.WHITE);
      Ellipse2D ellipse = new Ellipse2D.Double();
      Dimension panelSize=this.getSize();
      g2.setColor(Color.BLACK);
      
      for(int x=0;x<panelSize.getWidth();x+=10){
       for(int y=0;y<panelSize.getHeight();y+=10){
           ellipse.setFrame(x, y, 1, 1);
           g2.draw(ellipse);
       }
       
      }
      
      
      for(int i=0;i<AES.getRaum(1).getPC_Number();i++)
      g2.drawImage(AES.getRoom(1).getPC_byIndex(i).getItsImage(),(int) AES.getRoom(1).getPC_byIndex(i).getItsPosition().getX(), 
               (int)AES.getroom(1).getPC_byIndex(i).getItsPosition().getY(),50,50,null);
      
      

     
   }








Код

 private class MouseHandler extends MouseAdapter
   {
     
     
      public void mousePressed(MouseEvent event)
      {        
      
         currentPC=find(event.getPoint());
         if(currentPC!=null){
         pX_Image=(event.getX())- ((int)currentPC.getItsPosition().getX());
         pY_Image=(event.getY())- ((int)currentPC.getItsPosition().getY()); 
         }
      }

   }





Код

 public void mouseDragged(MouseEvent event)
      {
       
       if(currentPC!=null){
      
      currentPC.setItsPosition(new Point(event.getX()-pX_Image,event.getY()-pY_Image));
      
                      
          
            repaint();}
     }




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


Новичок



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

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



я уже всё перепробывал пробовал картинку добавит на панел и двигать ету панел толко неработает пробовал даже создать из компонента толко тоже неработает пробовал поместить картинку в кнопку но при смешении кнопка прыгает туда сюда и ваше непонято почему помагите плиз я на этои фигне уже 3 дня потерял а ешё надо довига сделать!!

Добавлено через 1 минуту и 19 секунд
Код

import java.awt.Color;
import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.Icon;
import javax.swing.JButton;



class ImageButton extends JButton{
    
    ImageButton(Icon icon){
        setFocusPainted(false);
        setBorderPainted(false);
        setContentAreaFilled(false);
        setIcon(icon);
        setSize(50,50);
        setLocation(100,100);
        setBackground(Color.WHITE);
    
        
    this.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent event){
            
            System.out.println("Action");
            
        }
    
    });
        
    this.addMouseMotionListener(new MouseMotionListener(){

        @Override
        public void mouseDragged(MouseEvent e) {
            
            
        
            setLocation(e.getX()-10,    e.getY()-10);
            updateUI();
        }

        @Override
        public void mouseMoved(MouseEvent e) {
            
            setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
            
        }
        
    });
    
    
    
    }

    
    
    
    
    
        
        
    }



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


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



вместо getLocationOnScreen() напишешь getLocation()
перетащить компонент

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

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

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


 




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


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

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