java - GUI不会刷新

标签 java swing user-interface

我正在为考试开发一个基于文本的简单角色扮演游戏,但我的 GUI 遇到了一些问题。

玩家注册时,可以消耗3类属性点。如果玩家有任何属性点,GUI 会显示“提高强度”等按钮。

这很酷,但是当玩家点击加注按钮时,会为他获取一个属性点,问题是,GUI 似乎没有更新。

if(Controller.player.getAttributePoints() > 0) {
        JLabel attriL = new JLabel("You have " + Controller.player.getAttributePoints() + " unspent Attribute points."); 
        attriL.setBounds(110, 30, 250, 30);
        hPanel.add(attriL);

        JButton setStrB = new JButton("Raise Strength");
        setStrB.setBounds(125, 60, 200, 30);
        setStrB.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
             //   tabbedPane.removeAll();                    
                Controller.player.setAttributePoints(Controller.player.getAttributePoints()-1);
                Controller.player.setStrength(Controller.player.getStrength()+1);

                gameCtn.validate();
                gameCtn.repaint();
                System.out.println(Controller.player.getStrength());                    
            }
        });
        hPanel.add(setStrB);
}

正如你所看到的,我尝试在我的容器上使用重绘和验证,但没有运气,我也尝试过框架和面板,似乎没有任何效果? 我做错了什么吗?

谢谢

最佳答案

不清楚 Controller ...是否没有调用长时间且困难的任务,基本上(如果您删除然后添加新的JComponents)到GUI,那么您必须调用

revalidate();
repaint();// not required on all cases

简单演示what's happens, what's possible或大部分完成here

关于java - GUI不会刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8463511/

相关文章:

java - 为什么绘制多个对象时 JFrame 会出现故障?

java - 在 GUI 中使用预定义的字符串

Java - 为什么静态在这种情况下很重要

java - 当同样的事情可以由 servlet 完成时,为什么还要使用 Restful Webservices?

java - 调试在 NetBeans 中正确运行的运行时 Java 崩溃的策略

java - 从 JTable 获取 DefaultTableModel

java HOUR 和 HOUR_OF_DAY 都返回 12 小时时间

java - 将java程序转换为linux上的可执行文件

java - 鼠标释放时对 JTable 进行排序

java - 我可以分层 JavaFX 控件吗?