【问题标题】:How can i refresh a JDialog Image Correctly?如何正确刷新 JDialog 图像?
【发布时间】:2018-10-09 11:42:06
【问题描述】:

我正在使用 Java 中的 SWing 编写程序,但这是我的问题,当我按下按钮时,我希望每次按下按钮时,我都会在与前一个相同的位置更新一个新图像,我尝试在代码的动作侦听器中执行此操作,但图像未更新,并且是一开始的那个,有人可以帮我吗?非常感谢。

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();
}       

【问题讨论】:

    标签: java swing jframe refresh jdialog


    【解决方案1】:

    首先,变量名和方法名不应以大写字符开头。通过阅读您的教科书或教程通过示例学习,然后遵循 Java 约定,不要自己编造!

    当我按下一个按钮时,我希望每次按下一个按钮时,我都会在与前一个相同的位置更新一个新图像,

    将包含 ImageIcon 的 JLabel 添加到您的面板。

    当你想改变你刚刚使用的图像时:

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

    例如阅读 How to Use Combo Boxes 上的 Swing 教程中的部分。它完全符合您的要求。它使用 ActionListener 来更改标签的图像。唯一不同的是,ActionEvent 是通过单击组合框中的项目而不是单击按钮来生成的。

    【讨论】:

    • 感谢您的回复,您能给我一个更具体的答案吗?我该怎么做?谢谢您。
    • 这是一个具体的答案。您对在代码的 ActionListener 中调用 setIcon(...) 语句感到困惑的是什么?无论如何,我正在添加演示代码的链接。你读过我提供的教程链接吗?您下载了演示代码并试用了吗?
    • 对不起,如果这是一个菜鸟混淆(哈哈),我正在为包含图像的窗口使用 Jdialog,所以我认为我不能使用 setIcon 方法,是吗?。跨度>
    • 为什么不能在 JDialog 中添加 JLabel?
    • 谢谢!,我通过您发给我的链接解决了这个任务,我对 Java 中的术语感到非常困惑,因为我是一个使用 swing 的新程序员。再次感谢您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2017-08-22
    相关资源
    最近更新 更多