Gridlayout и прослушиватели мыши

привет, я пытаюсь создать графический интерфейс с сеткой с помощью мыши. ТАК, когда нажимается конкретная ячейка в сетке, будет отображаться информация. Я не знаю, с чего начать, любая помощь была бы хороша, спасибо


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


Ответы (3)


Я считаю, что у вас есть класс, который наследуется от JPanel или JFrame, и в нем есть целый графический интерфейс. Затем этот класс должен реализовать 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 для обработки щелчков мыши. Если ячейки имеют тип Labels, вы можете скрыть текст с помощью myLabel.setText("") и поместить текст с помощью myLabel.setText("информация для отображения"). Если вам нужна дополнительная помощь, просто спросите: D и +1, если это поможет ^^

person Normal design    schedule 21.05.2015