Как правильно обновить изображение JDialog? - PullRequest
0 голосов
/ 29 апреля 2018

Я кодирую программу, используя SWing в Java, но это моя проблема, когда я нажимаю кнопку, я хочу, чтобы каждый раз, когда я нажимаю кнопку, я обновляю новое изображение в той же позиции, что и предыдущее, я попробуйте сделать это в действии слушателя кода, но изображение не обновляется, а то, что было в начале, может кто-нибудь помочь мне в этом? Большое спасибо.

public MainWindow() {
    initComponents();
    setIconImage(Icono);
    this.setLocationRelativeTo(null);
    this.setResizable(false);
    Imagen fondo=new Imagen();
    this.add(fondo, BorderLayout.CENTER);
    this.pack();
    PracticeMode = new javax.swing.JDialog();
}

private void StartPracticeActionPerformed(java.awt.event.ActionEvent evt) {                                              
    ButtonsSelected(1);
    StartGame Practice=new StartGame(OpcComboBox, numUnity, numTrys, 
    opcNotas, false);
    PracticeBF.dispose();
    PracticeMode.setIconImage(Icono);
    PracticeMode.setBounds(460, 600, 460, 538);
    PracticeMode.setVisible(true);
    CirculodeQuintasBW BW=new CirculodeQuintasBW();
    PracticeMode.add(BW, BorderLayout.CENTER);
    PracticeMode.pack();
    PracticeMode.setLocationRelativeTo(null);
    PracticeMode.setResizable(false);
}           

Это изображение, которое я хочу обновить, до этого оно было другим, но каждый раз, когда я пытался обновить, оно не работает ... PracticeMode это должно быть JDialog, кто-нибудь может мне помочь?.

private void D2ActionPerformed(java.awt.event.ActionEvent evt) {                                   
    CirculodeQuintasD D=new CirculodeQuintasD();
    PracticeMode.add(D, BorderLayout.CENTER);
    PracticeMode.validate();
    PracticeMode.repaint();
    PracticeMode.pack();
}       

1 Ответ

0 голосов
/ 29 апреля 2018

Прежде всего имена переменных и методов не должны начинаться с символа верхнего регистра. Учитесь на собственном примере, читая учебник или учебник, а затем следуйте соглашениям Java и не создавайте свои собственные!

когда я нажимаю кнопку, я хочу, чтобы каждый раз, когда я нажимал кнопку, я обновлял новое изображение в том же положении, что и предыдущее,

Добавьте JLabel, содержащий ImageIcon, на вашу панель.

Если вы хотите изменить изображение, которое вы просто используете:

label.setIcon( new ImageIcon(...) );

Например, прочитайте раздел из учебника по Swing на Как использовать поля со списком . Это именно то, что вы хотите. Он использует ActionListener для изменения изображения метки. Единственное отличие состоит в том, что ActionEvent генерируется нажатием на элемент в выпадающем списке вместо нажатия кнопки.

...