2010-01-05 2 views
0

У нас есть приложение поворота, которое отображает много прямоугольников. Мы используем класс Rectangle2D.double для рисования прямоугольников на JPanel. Мое требование таково. Нажав на прямоугольник, я должен выбрать изображение из локальной файловой системы и показать его во всплывающем окне или в кадре. Мой вопрос в том, как я могу предоставить гиперссылку или кнопку внутри прямоугольника Rectangle2D.double. Пожалуйста, дайте мне знать.Кнопка внутри swing Rectangle2D.double

Thanks -Jad.

ответ

1

Я надеюсь, что это то, что вы имеете в виду:

import java.awt.*; 
import java.awt.event.*; 
import java.awt.geom.*; 
import javax.swing.*; 

public class RectButton extends JPanel { 

    Rectangle2D.Double rect; 

    public RectButton() { 
     this.addMouseListener(new MouseAdapter() { 
      public void mouseClicked(MouseEvent e) { 
       Point point = e.getPoint(); 
       System.out.println(checkRectArea(point)); 
       // Do whatever else you want here. 
      } 
     }); 
    } 

    public boolean checkRectArea(Point point) { 
     return rect.contains(point); 
    } 

    public void paint(Graphics g) { 
     Graphics2D g2 = (Graphics2D) g; 
     rect = new Rectangle2D.Double(10, 10, 50, 50); 
     g2.draw(rect); 
    } 

    public static void main(String[] args) { 
     JFrame frame = new JFrame(); 
     RectButton r = new RectButton(); 
     frame.add(r); 
     frame.setSize(new Dimension(300, 300)); 
     frame.setVisible(true); 
    } 

} 

Эта программа рисует прямоугольник и печать истинного, если вы нажали внутри прямоугольника, ложь в противном случае.

0

Вы хотите нанести на панель MouseListener, который поймает все кликов в любом месте на панели. Затем вы можете получить местоположение клика из события и определить, какой прямоугольник щелкнул в нем, а затем вызвать код, подходящий для этого события и местоположения.

Смежные вопросы