פורסם 2011 בספטמבר 614 שנים יש לי מחלקה שמוגדרת כך:public class MyTable extends JTable implements CellEditorListener, MouseListener{/*code*/} @Override public void editingCanceled(ChangeEvent e) { System.out.println("A cell edit has been canceled."); } @Override public void editingStopped(ChangeEvent e) { System.out.println("A cell has been edited."); } @Override public void mouseClicked(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { }}הפונקציה editingStopped פועלת כצפוי בכל פעם שעריכת תא בטבלא מסתיימת. הבעיה היא בפונקציה editingCanceled - שפשוט לא מגיבה. אני עורך תא, לוחץ על Esc כדי לבטל את השנויים אבל ההודעה שאמורה להופיע בconsole לא מודפסת. יכול להיות שאני פשוט בשוק ולא הבנתי נכון את הפעולה של המתודה editingCanceled?
פורסם 2011 בספטמבר 714 שנים מחבר אף אחד? :'( נתקלתי בעוד בעיה:public class Table extends JTable{ public static JTable table; public Table(String[][] tableData, String[] columnNames){/*constructor*/} @Override public void setValueAt(Object value, int row, int column) { System.out.println("debug msg: setValueAt"); super.setValueAt(value, row, column); }{גם כאן הOverride לא עובד כפי שציפיתי. מה אני מפספס כאן?אני רוצה לעשות Override כדי לשמור את הערך הישן של התא (סתם למיקרה שמישהו תהה ;D )
פורסם 2011 בספטמבר 814 שנים מחבר אוקיי, עוד שאלה.הוספתי KeyListener לטבלא ואני נתקל בבעיה הבאה: אם אני מתחיל לערוך תא בעזרת לחיצה על רווח הליסנר קולט את המקשים שנלחצו במתודה KeyPressed.אם אני מתחיל לערוך תא בעזרת דאבל קליק - המאזין לא קולט אף תוו שהוקלד לתוך התא, גם לא במטודה KeyTyped. התוו היחיד שהוא מזהה זה התוו שבעזרתו סיימתי את העריכה בתא וזה נקלט במתודה KeyReleased. אני מניח שזה קורה בגלל שהפוקוס לא מועבר בצורה נכונה לתאים?אני אמור להוסיף את הליסנר גם לתאים עצמם? או לזמן מתודה שתעביר את הפוקוס לתא?מישהו? :-[
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.