Mozes tako sto crtas svoju kontrolu, recimo elipsu, pa napravis da klikovi misa ne reaguju van elipse.
1) Napravis novu komponentu koja nasledjuje recimo JLabel
2) Overridujes njegovu paintComponent() metodu:
Code:
public void paintComponent(Graphics g) {
g.setColor(getBackground());
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(getForeground());
g.drawElipse(0,0,getWidth(),getHeight());
}
3) U konstruktoru objekta dodas MouseListener:
Code:
this.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent me) {
if (me.getButton() == MouseEvent.BUTTON1 && misSeNalaziUnutarElipse(me.getX(),me.getY()) {
// akcije na klik
}
}
});
Ako zelis da ti se labela iscrtava kao i uvek, samo zelis da odseces delove koje se nalaze van elipse, onda opet radis sa paintComponent() metodom.
Code:
public void paintComponent(Graphics g) {
super.paintComponent(g); // iscrtaj labelu kao obicno
// odseci ostatak (napisi svoj postupak)
}