سؤال

وأود أن جعل jTable التي عندما مستخدم تحديد خلية غير القابل للتعديل بعد ذلك يجب تغيير التركيز إلى الخلية تحرير تلقائيا في المرة القادمة. هام: يمكن للمستخدم تحديد خلية عن طريق لوحة المفاتيح (علامة التبويب أو السهم) والنقر على الفأرة. هل هو ممكن؟؟ كيفية لذلك؟

نصائح أخرى

الجدول الجدولة يبين كيف يمكنك أن تفعل ذلك مع لوحة المفاتيح.

ولقد حاولت ذلك أبدا ولكن يجب أن تكون قادرا على استخدام MouseListener لاستدعاء نفس العمل عند النقر على خلية.

وفقط لم اختبار سريع لMouseListener ويبدو أن تعمل بشكل جيد:

JTable table = new JTable(...);
final EditableCellFocusAction action = 
    new EditableCellFocusAction(table, KeyStroke.getKeyStroke("TAB"));

MouseListener ml = new MouseAdapter()
{
    public void mouseReleased(MouseEvent e)
    {
        JTable table = (JTable)e.getSource();
        int row = table.rowAtPoint(e.getPoint());
        int column = table.columnAtPoint(e.getPoint());

        if (! table.isCellEditable(row, column))
        {
                ActionEvent event = new ActionEvent(
                    table,
                    ActionEvent.ACTION_PERFORMED,
                    "");
                action.actionPerformed(event);
        }
    }
};
table.addMouseListener(ml);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top