Gridlayout и слушатели на мишката

здравейте, опитвам се да създам GUI с оформление на мрежата със слушател на мишката. Така че, когато се щракне върху конкретна клетка в решетка, ще се покаже информация. Не знам откъде да започна, всяка помощ би била добра, благодаря


person jim164    schedule 21.05.2015    source източник


Отговори (3)


Вярвам, че имате клас, който наследява от JPanel или JFrame и в него има цял GUI. След това този клас трябва да имплементира mouseListener. Тогава вашият клас трябва да има подобен код:

@override
public void mouseClicked(MouseEvent e){}
@override
public void mousePressed(MouseEvent e){}
@override
public void mouseEntered(MouseEvent e){}
@override
public void mouseReleased(MouseEvent e){
    /*This method is being called when you release your click. It's better
      then mouseClicked because mouseClicked is only called when you press
      and release on the same pixel or Object (not sure about it)
    */
}
@override
public void mouseExiteded(MouseEvent e){}

Във всеки метод можете да получите източник на

MouseEvent e

използвайки

Object source = e.getSource();
if (source == button1){
    //Do sth
}if (source == button2){
    //Do sth else
}if (source == radioButton1){
    //Do whatever you want
}

След това имате препратка към източника, така че можете да промените това, което искате.

person xenteros    schedule 21.05.2015

Във вашето оформление на мрежата задайте всички мрежи с някакъв компонент като бутон или етикет. Можете да зададете слушатели на добавените компоненти и да показвате информация, когато се щракне върху компонент

person RehanZahoor    schedule 21.05.2015

За да използвате правилно gridbaglayout, първо трябва да работите върху ограниченията на gridbag. След това трябва да използвате интерфейса ActionListener, за да обработвате кликванията на мишката. Ако клетките са от типа Етикети, можете да скриете текста, като използвате myLabel.setText("") и поставите текста, като използвате myLabel.setText("информация за показване"). Ако имате нужда от повече помощ, просто попитайте :D и +1, ако помага ^^

person Normal design    schedule 21.05.2015