Jtable Щелкните правой кнопкой мыши Popupmenu в NetBeans

StackOverflow https://stackoverflow.com/questions/3241537

  •  15-09-2020
  •  | 
  •  

Вопрос

Я хочу добавить правой кнопкой мыши POPUPMENU на JTable в IDE NetBeans (кажется простой задачей ... LOL)

Я получил его в частично работать с

  1. Добавление всплывающую к форме
  2. Добавление меню впутников
  3. Перейти к jtable
  4. Нажмите на вкладку Binding
  5. Установите компонентпопупменю ценность для моей всплывающейся
  6. Но это только частично работает. Теперь я, когда я щелкнул Щелксу на таблицу, появится меню, но выбранная строка в JTable не меняется.Таким образом, когда Action MenueMeMed вызывается, я понятия не имею, какой ряд в JTable нажал.

    Как я могу получить это?Или есть ли более простым способом сделать это в NetBeans?

    Я знаю, что есть другие способы для этого (в коде), но я бы предпочел использовать Betbeans GUI Builder.

    кто-нибудь когда-либо делал это раньше?

    Спасибо за вашу помощь!

Это было полезно?

Решение

Почему вы полагаетесь на IDE, чтобы генерировать код для вас?Что произойдет, когда вы переезжаете на другую IDE, и вы должны научиться делать это для этого IDE?Узнайте, как написать свой собственный код, то IDE не имеет значения:

table.addMouseListener( new MouseAdapter()
{
    public void mouseReleased(MouseEvent e)
    {
        if (e.isPopupTrigger())
        {
            JTable source = (JTable)e.getSource();
            int row = source.rowAtPoint( e.getPoint() );
            int column = source.columnAtPoint( e.getPoint() );

            if (! source.isRowSelected(row))
                source.changeSelection(row, column, false, false);

            popup.show(e.getComponent(), e.getX(), e.getY());
        }
    }
});
.

Другие советы

Надеюсь, я могу ответить на него за NetBeans ... и я надеюсь, что это поможет кому-то

  1. добавление всплывающую к форме (она идет в других компонентах). JPopupmenu например
  2. Добавление меню впутников
  3. Перейти к jtable jtable (называть его jtabledataorsomething, например)
  4. Нажмите на вкладку Binding (или щелкните правой кнопкой мыши на элементах связывания JTable)
  5. Установите компонентPopupmenu Value на мой называемый jpopupmenu

    Следующие шаги,

  6. пока в свойствах выберите события и goto mousereleased Установите его на ваш jtabledataorsomething (или щелкните правой кнопкой мыши на столе, событиям> мышь> Mousereledate)

    NetBeans создает пустую функцию и установить следующий код

    private void jTableDataOrSomethingMouseReleased(java.awt.event.MouseEvent evt) {
    if (evt.isPopupTrigger())
    {
        JTable source = (JTable)evt.getSource();
        int row = source.rowAtPoint( evt.getPoint() );
        int column = source.columnAtPoint( evt.getPoint() );
    
        if (!source.isRowSelected(row)) {
            source.changeSelection(row, column, false, false);
        }
        jPopupMenu.show(evt.getComponent(), evt.getX(), evt.getY());
    }
    }
    
  7. Создать действие меню, выполненное для каждого элемента меню

    Тогда там вы можете использовать:

        int[] rows = jTableDataOrSomething.getSelectedRows();
        for (int row : rows) {
            boolean j = true;
            try {
                modelRow = jTableDataOrSomething.convertRowIndexToModel(row);
                //do something with the selected rows...
    
  8. Это принимает многократный выбор и учитывает сортировку / фильтрацию.

    Завершите функцию с

        jTableDataOrSomething.repaint();
    
    .

    Наслаждайтесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top