Fix selectall cell after selecting another cell
This commit is contained in:
		
							parent
							
								
									78e68ecf20
								
							
						
					
					
						commit
						2bddbf84d2
					
				@ -1065,6 +1065,7 @@ public class SimulationConditionsPanel extends JPanel {
 | 
				
			|||||||
		private final JTable table;
 | 
							private final JTable table;
 | 
				
			||||||
		private int editingRow;
 | 
							private int editingRow;
 | 
				
			||||||
		private int editingColumn;
 | 
							private int editingColumn;
 | 
				
			||||||
 | 
							private Object originalValue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		public SelectAllCellEditor(JTable table) {
 | 
							public SelectAllCellEditor(JTable table) {
 | 
				
			||||||
			super(new JTextField());
 | 
								super(new JTextField());
 | 
				
			||||||
@ -1091,7 +1092,11 @@ public class SimulationConditionsPanel extends JPanel {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		@Override
 | 
							@Override
 | 
				
			||||||
		public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
 | 
							public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
 | 
				
			||||||
 | 
								editingRow = row;
 | 
				
			||||||
 | 
								editingColumn = column;
 | 
				
			||||||
 | 
								originalValue = value;
 | 
				
			||||||
			JTextField textField = (JTextField) super.getTableCellEditorComponent(table, value, isSelected, row, column);
 | 
								JTextField textField = (JTextField) super.getTableCellEditorComponent(table, value, isSelected, row, column);
 | 
				
			||||||
 | 
								textField.setText(value != null ? value.toString() : "");
 | 
				
			||||||
			SwingUtilities.invokeLater(textField::selectAll);
 | 
								SwingUtilities.invokeLater(textField::selectAll);
 | 
				
			||||||
			return textField;
 | 
								return textField;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@ -1105,7 +1110,8 @@ public class SimulationConditionsPanel extends JPanel {
 | 
				
			|||||||
				// If successful, update the cell value
 | 
									// If successful, update the cell value
 | 
				
			||||||
				table.getModel().setValueAt(value, editingRow, editingColumn);
 | 
									table.getModel().setValueAt(value, editingRow, editingColumn);
 | 
				
			||||||
			} catch (NumberFormatException e) {
 | 
								} catch (NumberFormatException e) {
 | 
				
			||||||
				// If parsing fails, revert to the original value
 | 
									// Revert to the original value if parsing fails
 | 
				
			||||||
 | 
									textField.setText(originalValue != null ? originalValue.toString() : "");
 | 
				
			||||||
				return false;
 | 
									return false;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			boolean result = super.stopCellEditing();
 | 
								boolean result = super.stopCellEditing();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user