Мы не уверены, как вы увеличиваете свой идентификатор и как вы храните свои данные, а также как вы просматриваете 300 строк на экране компьютера
Так что не хватает большого количества кода, чтобы дать очень точный ответ на ваш вопрос
Вот таблица, которую мы заполняем из базы данных Derby.
Таблица называется ptable, и мы могли бы также упомянуть, что мы используем шаблон Model View Controller для управления данными для переменных GET и SET
Сначала мы читаем избазы данных и заполняем ptable этим кодом
private void ReadFromParent() throws SQLException{
ObservableList<ParentModel> TableData = FXCollections.observableArrayList();
stmnt = conn.createStatement();
ResultSet rs = stmnt.executeQuery("SELECT * FROM Parent");
while (rs.next()){// Add data to observableArrayList TableData to select a table ROW
TableData.add(new ParentModel(rs.getString("PID"),rs.getString("pMonth"),rs.getString("pYear")));
}
PropertyValueFactory<ParentModel, String> IDCellValueFactory = new PropertyValueFactory<>("PID");
colID.setCellValueFactory(IDCellValueFactory);
PropertyValueFactory<ParentModel, String> DateCellValueFactory = new PropertyValueFactory<>("pMonth");
colMonth.setCellValueFactory(DateCellValueFactory);
PropertyValueFactory<ParentModel, String> TypeCellValueFactory = new PropertyValueFactory<>("pYear");
colYear.setCellValueFactory(TypeCellValueFactory);
// ================================================================
// colTxDate are the ID's for the tableview columns
// sortDate are the Column Names for the Database TABLE CDBalance
// ================================================================
colMonth.setStyle("-fx-alignment: CENTER;");
colYear.setStyle("-fx-alignment:CENTER;");
Collections.sort(TableData, (p2, p1)-> p1.getPID().compareToIgnoreCase(p2.getPID()));
// Line of Code above Sorts Database Columns based on VARIABLE in ParentModel
// Change p2,p1 to sort Ascending or Descending
if(TableData.size() < 15) {// Format TableView to display Vertical ScrollBar
ptable.setPrefWidth(336);// 19 is the off set
}else {
ptable.setPrefWidth(355);
} ptable.setItems(TableData);
stmnt.close();
}
Затем мы пишем код слушателя, чтобы позволить нам просмотреть детали выбранной строки
Обратите внимание, что мы получаем идентификатор из выбранной строки
Здесь вы можете использовать это значение, чтобы найти новую запись, которая больше 300
ИЛИ вы можете написать поисковый запрос в таблицу, которая найдет все записи, которые имеют идентификатор больше 300
Вот код, который позволяет вам щелкнуть строку в таблице
private void showTableDataDetails(ParentModel info) throws IOException{
if (info != null) {
info = (ParentModel) ptable.getSelectionModel().getSelectedItem();
strID = info.getPID();
strMONTH = info.getPMonth();
strYEAR = info.getPYear();
toChildView();
System.out.println("########### PID "+strID);
}
}
@Override
public void initialize(URL url, ResourceBundle rb) {
ptable.getSelectionModel().selectedItemProperty().addListener((ObservableValue<? extends ParentModel>
observable,ParentModel oldValue, ParentModel newValue) -> {
try {
showTableDataDetails((ParentModel) newValue); // When a row of the table is Selected call
// Proper Construction // showTableDataDetails method
} catch (IOException ex) {
Logger.getLogger(ParentTableViewController.class.getName()).log(Level.SEVERE, null, ex);
}
});
}
Надеюсь, это поможет, и добро пожаловать в стек Overflow
ПОЖАЛУЙСТА, опубликуйте немного больше кода в будущем, чтобы ваш вопрос мог иметь более четкий ответ