Как заставить вызываемый класс работать после установки переменных в java.
Я создаю java-приложение, которое использует JFrame для сбора входных данных пользователя и хранения данных в отдельном классе, который затем в конечном итоге представит данные на веб-сайте.
В рамках этого проекта я пытаюсь получить изображение определенного размера 150x150 пикселей.
Я использую эти снипы своего кода...
public void actionPerformed(ActionEvent evt) { if(evt.getSource() == browseButton) { JFileChooser fileChooser = new JFileChooser(); if (fileChooser.showOpenDialog(imageField) == JFileChooser.APPROVE_OPTION) { imageDirectory = fileChooser.getSelectedFile().getPath().toString(); if(imageDirectory.contains(".png")){ imageFile = fileChooser.getSelectedFile(); imageDirectory = imageFile.getPath(); // load from file imageField.setText(imageDirectory); } else{ imageDirectory = ""; JOptionPane.showMessageDialog(null, "image must be of type '.png'"); } } } else if(evt.getSource() == submitButton){ CommiteeData member = new CommiteeData(); member.position = (String) positionBox.getSelectedItem(); member.name = nameField.getText(); member.age = ageBox.getSelectedItem().toString(); member.course = courseField.getText(); member.reason = reasonField.getText(); member.advice = adviceField.getText(); member.memory = memoryField.getText(); member.fightScene = fightsceneField.getText(); member.other = otherField.getText(); if(imageDirectory != ""){ try { File resourcesFolder = new File("C:\\KungFuCommiteeWebForm\\build\\classes\\resources"); imageFile.renameTo(new File(resourcesFolder + "\\avatar" + member.name + ".png")); member.avatar = ImageIO.read(imageFile); } catch (IOException ex) { Logger.getLogger(KungFuInterface.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showMessageDialog(null, ex.getMessage()); } } else{ try { member.avatar = ImageIO.read(new File("C:\\KungFuCommiteeWebForm\\build\\classes\\resources\\avatar.png")); } catch (IOException ex) { Logger.getLogger(KungFuInterface.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showMessageDialog(null, ex.getMessage()); } } JOptionPane.showMessageDialog(null, "Your profile has been submitted."); System.exit(0); } }
public class CommiteeData { public String position; public String name; public String age; public String course; public String reason; public String memory; public String advice; public String fightScene; public String other; public BufferedImage avatar; public CommiteeData() { try{ int[] size = new int[2]; size[0] = avatar.getHeight(); size[1] = avatar.getWidth(); if((size[0] == 150) && (size[1] == 150)) { avatar.getScaledInstance(150, 150, Image.SCALE_FAST); } } catch(Exception ex){ JOptionPane.showMessageDialog(null, ex.getMessage()); } } }
У меня возникла проблема, когда появляется сообщение об ошибке, для которого оно пусто.
Что я уже пробовал:
Я попытался прокомментировать JOptionPane в классе CommiteeData () и подтвердил, что существует проблема с кодом в вызываемом классе CommiteeData (). Это сводит его к одному из двух вопросов. Либо класс CommiteeData () вызывается без данных, предоставленных ему в предыдущем классе, либо возникает проблема с сохранением файла изображения в каталоге предыдущего класса. Есть ли способ выяснить это и найти решение этой общей проблемы?
NotPolitcallyCorrect
Да, обратитесь к документации для любой IDE, которую вы используете, о том, как использовать отладчик.