Java Swing JSlider

Java Swing JSlider,java,swing,jslider,Java,Swing,Jslider,在我的游戏中,我正在制作一个基本的主菜单,我正在寻找一些东西 目前唯一能看到哪个Jslider的方法是将鼠标悬停在它上面。。有什么建议吗 当我更改JSlider亮度或JSlider音频时,它实际上不会更新,直到我切换选项卡并返回 当我关闭游戏并重新打开时,设置将返回默认设置。如何创建变量以保留设置 所有代码都在这里 如果您希望只看到代码参与的类 thx 我建议您在滑块旁边添加一个JLabel 您需要更新statechangelistener中的SetToolTiptText。无论何时状态更改,都

在我的游戏中,我正在制作一个基本的主菜单,我正在寻找一些东西

  • 目前唯一能看到哪个Jslider的方法是将鼠标悬停在它上面。。有什么建议吗

  • 当我更改JSlider亮度或JSlider音频时,它实际上不会更新,直到我切换选项卡并返回

  • 当我关闭游戏并重新打开时,设置将返回默认设置。如何创建变量以保留设置

  • 所有代码都在这里

    如果您希望只看到代码参与的类

    thx

  • 我建议您在滑块旁边添加一个JLabel
  • 您需要更新statechangelistener中的SetToolTiptText。无论何时状态更改,都需要让滑块知道其tooltiptext已更改
  • 您希望使用类似于首选项的内容 *如评论中所述。避免使用setBounds、setSize或setLocation。请复习。我将它们保存在下面代码中的唯一原因是,您可以看到如何实现对您提出的3个问题的建议。

    下面是我上面提到的代码更改示例。祝你好运

            settings.addActionListener(new ActionListener() {
    
                public void actionPerformed(ActionEvent e) {
    
                    remove(createWorld);
                    remove(addServer);
                    repaint();
    
                    // Get stored preferences and specific default values if they
                    // do not exist
                    final Preferences prefs = Preferences.userNodeForPackage(Render.class);
                  soundLevel = prefs.getInt("SOUND_LEVEL", 50);
                  lightLevel = prefs.getInt("LIGHT_LEVEL", 50);
    
                  // Add sound label
                    JLabel soundLabel = new JLabel("Sound: ");
                    soundLabel.setBounds(170, 110, 150, 35);
                    soundLabel.setForeground(Color.white);
    
                    add(soundLabel);
                    add(sound);
                    sound.setBounds(210, 110, 150, 35);
                    sound.setMinimum(0);
                    sound.setMaximum(100);
                    sound.setValueIsAdjusting(true);
                    sound.setValue(soundLevel);
                    sound.setToolTipText("Audio: " + soundLevel + "%");
                    sound.addChangeListener(new ChangeListener() {
                        public void stateChanged(ChangeEvent e) {
    
                            soundLevel = sound.getValue();
    
                            // Update tooltip value
                        sound.setToolTipText("Audio: " + soundLevel + "%");
    
                        // Save sound value in pref
                     prefs.putInt("SOUND_LEVEL", soundLevel);
                        }
                    });
    
                    // Add light label
                JLabel lightLabel = new JLabel("Light: ");
                lightLabel.setBounds(370, 110, 150, 35);
                lightLabel.setForeground(Color.white);
    
                add(lightLabel);
                    add(light);
                    light.setBounds(405, 110, 150, 35);
                    light.setMinimum(0);
                    light.setMaximum(100);
                    light.setValueIsAdjusting(true);
                    light.setValue(lightLevel);
                light.setToolTipText("Brightness: " + lightLevel + "%");
    
                    light.addChangeListener(new ChangeListener() {
                        public void stateChanged(ChangeEvent e) {
                            lightLevel = light.getValue();
    
                            // Update tooltip value
                        light.setToolTipText("Brightness: " + lightLevel + "%");
    
                        // Save light value in pref
                        prefs.putInt("LIGHT_LEVEL", lightLevel);
                        }
                    });
                }
            });
    

    欢迎来到StackOverflow这是一个问答网站,你的问题太模糊了,你必须详细解释你的问题:发生了什么,你想发生什么,并在这里显示相关代码,链接代码是不可取的。但最重要的是,你必须只张贴相关的代码,最好是一个。我们来这里不是为了修复或改进您的项目,这是您的工作,但如果您有具体问题,我们可能会帮助您解决。嗯。。。我有3个问题,我不是特别要求你帮我“修复”它。我发布了这个项目的链接,这样你就可以运行它,告诉我出了什么问题,然后我们就可以开始编辑过程了。是的,我知道我在哪里,我在这里发帖时暗示了什么。请记住im 14.1-添加JLabel或使用标题边框。2-您应该有一个ChangeListener来监视更改。3-关于SO,有许多问题应该会有所帮助,例如不要使用或建议使用setBounds、setSize或setLocation(或扩展为空布局)。没有理由在moderne GUI中使用这些。它们将工作负载增加了10倍,并立即降低了应用程序到服务器的可移植性0@MadProgrammer同意——我之所以使用它,是因为他以前的代码中有它,而且提供一个不同的解决方案,他可以即插即用,这将非常复杂更新了推荐的解决方案,并添加了关于setBounds、setSize和setLocation的说明。我该如何避免这些\n我只想说我已经学习java 1 1/2年了,这是我喜欢的东西learn@implementsFeatheredOrcian阅读有关布局管理器的教程。