Невозможно получить доступ к переменным метода за пределами метода в JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно получить доступ к переменным метода за пределами метода в Java

Сообщение Anonymous »


Уже несколько дней у меня возникла проблема с моей Java-программой. Я пытаюсь получить доступ к artID, который определен внутри метода updateResultDisplay. Каждый раз, когда я переключаю результаты, я получаю новый идентификатор, отображаемый на моей консоли из-за метода newLiteratureWindow. Он всегда показывает мне правильный идентификатор, но как только я пытаюсь получить доступ к переменной идентификатора, называемой aktArtID, внутри метода saveNewLiterature, он внезапно перестает работать. Он всегда возвращает 0.

Думаю, проблема может возникнуть из-за того, что идентификатор нужно вставить в новом окне FXML?

Не волнуйтесь, в моем художественном классе есть методы установки и получения идентификатора.

публичный класс ResultController { частный int currentIndex = 0; общественное искусство @FXML // нужно ли мне это вообще? общественный int aktArtID; @FXML частный ArrayList searchResults = новый ArrayList(); @FXML public void updateResultDisplay() выдает SQLException { if (currentIndex >= 0 && currentIndex < searchResults.size()) { currentArt = searchResults.get(currentIndex); tf1.setText(aktuellesArtefakt.getBezeichnung()); tf2.setText(aktuellesArtefakt.getEpoche()); tf3.setText(aktuellesArtefakt.getDatierung()); tf4.setText(aktuellesArtefakt.getMaterial()); tf5.setText(aktuellesArtefakt.getFundort()); tf6.setText(aktuellesArtefakt.getSpezFundort()); tf7.setText(aktuellesArtefakt.getTag()); ta1.setText(aktuellesArtefakt.getBeschreibung()); aktArtID = currentArt.getArtefaktID(); btNext.setDisable(currentIndex == searchResults.size() - 1); btBack.setDisable(currentIndex == 0); } еще { System.out.println("Искусство не найдено"); } } //Показать новое окно FXML с возможностью изменения @FXML public void newLiteratureWindow (событие ActionEvent) { gc.showNewLiteratureDialog(событие); System.out.println("Текущий арт = " + currentArt.getArtID()); // Дает правильный идентификатор System.out.println("Текущий aktArtId = " + aktArtID); // Также дает правильный идентификатор } //почему в методе newLtieratureWindow отображается правильный идентификатор, а в методе newLtieratureWindow — нет // метод saveNewLiberature? Из-за нового окна? @FXML общественный недействительный saveNewLiterature () { Литература newLiterature = новая литература(); newLiterature.setTitel(tfTitel.getText()); newLiterature.setAuthor(tfAuthor.getText()); newLiterature.setYear(Integer.parseInt(tfYear.getText())); newLiterature.setPlace(tfPlace.getText()); newLiterature.setPages(tfPages.getText()); int newLiteratureID = db.insertLiteraturAndGetID(newLiterature); db.insertIntoArtLiteratur(aktArtID, newLiteratureID, newLiterature.getPages()); System.out.println("Идентификаторы установлены: LiteratureID " + newLiteratureID + " и aktArtID" + aktArtID); //Это показывает правильныйLiteratureID, но неправильный aktArtID } Я уже исследовал и пытался объявить aktArtID общедоступным, но это не сработало. Я также удалил int перед aktArtID внутри updateResultDisplay, потому что читал, что это может вызвать проблему, но это не так. может ли это помочь, если я создам новый класс контроллера, чтобы вставить новую литературу и попытаться получить оттуда доступ к идентификатору? Я читал, что это действительно не работает.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»