здравейте, опитвам се да създам GUI с оформление на мрежата със слушател на мишката. Така че, когато се щракне върху конкретна клетка в решетка, ще се покаже информация. Не знам откъде да започна, всяка помощ би била добра, благодаря
Gridlayout и слушатели на мишката
Отговори (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
}
След това имате препратка към източника, така че можете да промените това, което искате.
Във вашето оформление на мрежата задайте всички мрежи с някакъв компонент като бутон или етикет. Можете да зададете слушатели на добавените компоненти и да показвате информация, когато се щракне върху компонент
За да използвате правилно gridbaglayout, първо трябва да работите върху ограниченията на gridbag. След това трябва да използвате интерфейса ActionListener, за да обработвате кликванията на мишката. Ако клетките са от типа Етикети, можете да скриете текста, като използвате myLabel.setText("") и поставите текста, като използвате myLabel.setText("информация за показване"). Ако имате нужда от повече помощ, просто попитайте :D и +1, ако помага ^^