JSlider sichtbar

jalako

Mitglied
Hallo,
ich habe folgendes Problem:

In der Klasse "Menu" erstelle ich drei JSlider. Diese adde ich alle zu einem JPanel namens "bg5".
Wenn ich das Programm jedoch starte, ist nur der oberste sichtbar. Die beiden darunter werden erst sichtbar, wenn ich in ihre nähe klicke. Warum?

Hier der Code:
Java:
JSlider masterslider = new JSlider(JSlider.HORIZONTAL);
        masterslider.setBounds(285,200,500,100);
        masterslider.setBackground(Color.white);
        masterslider.setMinorTickSpacing(5);
        masterslider.setMajorTickSpacing(10);
        masterslider.setPaintTicks(true);
        masterslider.setPaintLabels(true);
        bg5.add(masterslider);
      
        JSlider effectslider = new JSlider(JSlider.HORIZONTAL);
        effectslider.setBounds(285,400,500,100);
        effectslider.setBackground(Color.white);
        effectslider.setMinorTickSpacing(5);
        effectslider.setMajorTickSpacing(10);
        effectslider.setPaintTicks(true);
        effectslider.setPaintLabels(true);
   bg5.add(effectslider);
      
        JSlider musicslider = new JSlider(JSlider.HORIZONTAL);
        musicslider.setBounds(285,600,500,100);
        musicslider.setBackground(Color.white);
        musicslider.setMinorTickSpacing(5);
        musicslider.setMajorTickSpacing(10);
        musicslider.setPaintTicks(true);
        musicslider.setPaintLabels(true);
        bg5.add(musicslider);


Danke im Vorraus!
 
Zuletzt bearbeitet von einem Moderator:
Na dann gl hf Klassen Name ist "Menu"

Java:
package pokemon;

import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.util.Hashtable;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import pokemon.casual.Music;
import pokemon.fight.Fight;
import pokemon.inventory.Inventory;

import javax.swing.JPanel;
import javax.swing.JSlider;

@SuppressWarnings("serial")
public class Menu extends JFrame  {

public JLabel start;
public JLabel load;
public JLabel settings;
public JLabel close;
public JLabel close2;
public JLabel close3;
public JPanel bg;
public JLabel bg2;
public JPanel bg3;
public JLabel bg4;
public JPanel bg5;
public JLabel bg6;
public JPanel inv1;
public JLabel inv2;
public JSlider slider;
public static JLabel gif;


public JLabel Savegame1;
FileHandler fh = new FileHandler();

public JLabel test;

@SuppressWarnings("unused")
public Menu() {
        Music.playIntro();
        super.setUndecorated(true);
        super.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        super.setSize(1080, 771);
        super.setLocationRelativeTo(null);
        super.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resource/pokemon-ico.png")));
        super.setResizable(false);
       
        JFrame settings2 = new JFrame("Pokemon Settings");
        JFrame savegames = new JFrame("Pokemon Savegames");
        File intro = new File("wurzelheim.WAV");
       
        bg = new JPanel();
        bg.setSize(1080, 771);
        bg.setVisible(true);
        bg.setLayout(null);
        super.add(bg);
       
        bg3 = new JPanel();
        bg3.setSize(1080, 771);
        bg3.setVisible(true);
        bg3.setLayout(null);
        savegames.add(bg3);
       
        bg5 = new JPanel();
        bg5.setSize(1080, 771);
        bg5.setVisible(true);
        bg5.setLayout(null);
        settings2.add(bg5);
       
        bg2 = new JLabel(new ImageIcon(getClass().getResource("/resource/menu.jpg")));
        bg2.doLayout();
        bg2.setBounds(0,0,1080,771);
        bg.add(bg2);
       
        bg4 = new JLabel(new ImageIcon(getClass().getResource("/resource/savegames.jpg")));
        bg4.doLayout();
        bg4.setBounds(0,0,1080,771);
        bg3.add(bg4);
       
        bg6 = new JLabel(new ImageIcon(getClass().getResource("/resource/settings.jpg")));
        bg6.doLayout();
        bg6.setBounds(0,0,1080,771);
        bg5.add(bg6);
       
        start = new JLabel();
        start.setIcon(new ImageIcon(getClass().getResource("/resource/search_default.png")));
        start.setBounds(460,350,200,100);
        start.addMouseListener(new MouseAdapter() {
                    boolean sgHover = false;
                    public void mouseEntered(MouseEvent evt) {
                        start.setIcon(new ImageIcon(getClass().getResource("/resource/search_hover.png")));
                        sgHover = true;
                    }
                    public void mouseExited(MouseEvent evt) {
                        start.setIcon(new ImageIcon(getClass().getResource("/resource/search_default.png")));
                        sgHover = false;
                    }
                    public void mousePressed(MouseEvent evt) {
                        start.setIcon(new ImageIcon(getClass().getResource("/resource/search_pressed.png")));
                      
                        Music.playStarteffect();
                        Music.playLilycove();
                        Music.stopIntro();
                        Gameframe();
                        Close();
                    }
                    public void mouseReleased(MouseEvent evt) {
                        if (sgHover == true) {
                            start.setIcon(new ImageIcon(getClass().getResource("/resource/search_hover.png")));
                            }
                    }
        });
        bg2.add(start);
       
        load = new JLabel();
        load.setIcon(new ImageIcon(getClass().getResource("/resource/load_default.png")));
        load.setBounds(460,450,200,100);
       
        int i = fh.getSpielzeit();
        Integer mI = new Integer(i);
        String Spielzeit = mI.toString();
        Savegame1 = new JLabel();
        Savegame1.setText("Spielzeit: " + Spielzeit + " Name: " + fh.getName());
        Savegame1.setBounds(460,250,400,100);
        Savegame1.setFont(Savegame1.getFont().deriveFont(18f));
        Savegame1.setVisible(false);
        load.addMouseListener(new MouseAdapter() {
                    boolean sgHover = false;
                    public void mouseEntered(MouseEvent evt) {
                        load.setIcon(new ImageIcon(getClass().getResource("/resource/load_hover.png")));
                        sgHover = true;
                    }
                    public void mouseExited(MouseEvent evt) {
                        load.setIcon(new ImageIcon(getClass().getResource("/resource/load_default.png")));
                        sgHover = false;
                    }
                    public void mousePressed(MouseEvent evt) {
                        load.setIcon(new ImageIcon(getClass().getResource("/resource/load_pressed.png")));
                      
                        Savegame1.setVisible(true);
                        savegames.setResizable(false);
                        savegames.setVisible(false);
                        savegames.setSize(1080,771);
                        savegames.setUndecorated(true);
                        savegames.setLocationRelativeTo(null);
                        savegames.setVisible(true);
                    }
                    public void mouseReleased(MouseEvent evt) {
                        if (sgHover == true) {
                            load.setIcon(new ImageIcon(getClass().getResource("/resource/load_hover.png")));
                            }
                    }
        });
        bg4.add(Savegame1);
        bg2.add(load);

        settings = new JLabel();
        settings.setIcon(new ImageIcon(getClass().getResource("/resource/settings_default.png")));
        settings.setBounds(460,550,200,100);
        settings.addMouseListener(new MouseAdapter() {
                    boolean sgHover = false;
                    public void mouseEntered(MouseEvent evt) {
                        settings.setIcon(new ImageIcon(getClass().getResource("/resource/settings_hover.png")));
                        sgHover = true;
                    }
                    public void mouseExited(MouseEvent evt) {
                        settings.setIcon(new ImageIcon(getClass().getResource("/resource/settings_default.png")));
                        sgHover = false;
                    }
                    public void mousePressed(MouseEvent evt) {
                        settings.setIcon(new ImageIcon(getClass().getResource("/resource/settings_pressed.png")));
                        settings2.setResizable(false);
                        settings2.setVisible(false);
                        settings2.setSize(1080,771);
                        settings2.setUndecorated(true);
                        settings2.setLocationRelativeTo(null);
                        settings2.setVisible(true);
                    }
                    public void mouseReleased(MouseEvent evt) {
                        if (sgHover == true) {
                            settings.setIcon(new ImageIcon(getClass().getResource("/resource/settings_hover.png")));
                            }
                    }
        });
        bg2.add(settings);
        close = new JLabel();
        close.setIcon(new ImageIcon(getClass().getResource("/resource/close_default.png")));
        close.setBounds(1030,-15,200,100);
        close.addMouseListener(new MouseAdapter() {
                    boolean sgHover = false;
                    public void mouseEntered(MouseEvent evt) {
                        close.setIcon(new ImageIcon(getClass().getResource("/resource/close_hover.png")));
                        sgHover = true;
                    }
                    public void mouseExited(MouseEvent evt) {
                        close.setIcon(new ImageIcon(getClass().getResource("/resource/close_default.png")));
                        sgHover = false;
                    }
                    public void mousePressed(MouseEvent evt) {
                        close.setIcon(new ImageIcon(getClass().getResource("/resource/close_pressed.png")));
                        Close();
                        System.exit(0);
                    }
                    public void mouseReleased(MouseEvent evt) {
                        if (sgHover == true) {
                            close.setIcon(new ImageIcon(getClass().getResource("/resource/close_hover.png")));
                            }
                    }
        });
        bg2.add(close);
        setVisible(true);

        close2 = new JLabel();
        close2.setIcon(new ImageIcon(getClass().getResource("/resource/close_default.png")));
        close2.setBounds(1030,-15,200,100);
        close2.addMouseListener(new MouseAdapter() {
                    boolean sgHover = false;
                    public void mouseEntered(MouseEvent evt) {
                        close2.setIcon(new ImageIcon(getClass().getResource("/resource/close_hover.png")));
                        sgHover = true;
                    }
                    public void mouseExited(MouseEvent evt) {
                        close2.setIcon(new ImageIcon(getClass().getResource("/resource/close_default.png")));
                        sgHover = false;
                    }
                    public void mousePressed(MouseEvent evt) {
                        close2.setIcon(new ImageIcon(getClass().getResource("/resource/close_pressed.png")));
                        savegames.dispose();
                    }
                    public void mouseReleased(MouseEvent evt) {
                        if (sgHover == true) {
                            close2.setIcon(new ImageIcon(getClass().getResource("/resource/close_hover.png")));
                            }
                    }
        });
        bg4.add(close2);
        close3 = new JLabel();
        close3.setIcon(new ImageIcon(getClass().getResource("/resource/close_default.png")));
        close3.setBounds(1030,-15,200,100);
        close3.addMouseListener(new MouseAdapter() {
                    boolean sgHover = false;
                    public void mouseEntered(MouseEvent evt) {
                        close3.setIcon(new ImageIcon(getClass().getResource("/resource/close_hover.png")));
                        sgHover = true;
                    }
                    public void mouseExited(MouseEvent evt) {
                        close3.setIcon(new ImageIcon(getClass().getResource("/resource/close_default.png")));
                        sgHover = false;
                    }
                    public void mousePressed(MouseEvent evt) {
                        close3.setIcon(new ImageIcon(getClass().getResource("/resource/close_pressed.png")));
                        settings2.dispose();
                    }
                    public void mouseReleased(MouseEvent evt) {
                        if (sgHover == true) {
                            close3.setIcon(new ImageIcon(getClass().getResource("/resource/close_hover.png")));
                            }
                    }
        });
        bg6.add(close3);
        JSlider masterslider = new JSlider(JSlider.HORIZONTAL);
        masterslider.setBounds(285,200,500,100);
        masterslider.setBackground(Color.white);
        masterslider.setMinorTickSpacing(5);
        masterslider.setMajorTickSpacing(10);
        masterslider.setPaintTicks(true);
        masterslider.setPaintLabels(true);
        masterslider.setVisible(true);
        masterslider.addChangeListener(new ChangeListener(){
            @Override
            public void stateChanged(ChangeEvent e) {
                JSlider source = (JSlider) e.getSource();
                System.out.println(source.getValue());
            }
          
        });
        bg5.add(masterslider);
        JSlider effectslider = new JSlider(JSlider.HORIZONTAL);
        effectslider.setBounds(285,400,500,100);
        effectslider.setBackground(Color.white);
        effectslider.setMinorTickSpacing(5);
        effectslider.setMajorTickSpacing(10);
        effectslider.setPaintTicks(true);
        effectslider.setPaintLabels(true);
        effectslider.setVisible(true);
        bg5.add(effectslider);
        JSlider musicslider = new JSlider(JSlider.HORIZONTAL);
        musicslider.setBounds(285,600,500,100);
        musicslider.setBackground(Color.white);
        musicslider.setMinorTickSpacing(5);
        musicslider.setMajorTickSpacing(10);
        musicslider.setPaintTicks(true);
        musicslider.setPaintLabels(true);
        musicslider.setVisible(true);
        bg5.add(musicslider);
    }

public void Close() {
    super.dispose();
    }

public void Gameframe(){
    gif = new JLabel(new ImageIcon(getClass().getResource("/resource/fightintro.gif")));
    gif.setBounds(0,0,1095, 771);
    gif.setVisible(false);
    Game game = new Game();
    JFrame frame = new JFrame("Pokemon");
    Inventory inven = new Inventory();
    frame.add(Inventory.inv2);
    frame.add(Inventory.arrow);
    frame.add(gif);
    frame.add(game);
    frame.pack();
    frame.setResizable(false);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 frame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resource/pokemon-ico.png")));
    frame.setVisible(true);
    game.start();
    }
}
 
Zuletzt bearbeitet von einem Moderator:
Probier mal musicslider und effectslider über den masterslider zu schieben.
Es kann sein, dass wegen dem ChangeListener bei einem so komplexen Programm, ein Objekt irgendwie rumgebuggt wird. Also mach einfach mal alles über masterslider zu schieben, sodass der ChangeListener unten ist.
Ich such mal weiter, es kann sein dass irgendwie da was verdeckt wird. Schreib dann, ob die Änderung funktioniert.


//EDIT funktioniert nicht. Ich guck mal weiter
 
Hab die Lösung!!!
Der masterslider ist so groß, dass er die anderen beiden verdeckt.
Nimm das
Code:
masterslider.setBounds(10, 231, 861, 223);
oder ähnliches für den masterslider und gebe bg5 die Farbe weiß.
🙂
 
Der masterslider ist doch genau so groß, wie die anderen, oder?😵 Wenn ich den masterslider kleiner mache, ist das gleiche Problem.
 

Zurück
Oben