Zelf ontwikkelde Jbutton verschijnt alleen maar bij mouse hover

Status
Niet open voor verdere reacties.

PieterNoens

Gebruiker
Lid geworden
26 feb 2013
Berichten
6
Als ik mijn frame laad met deze knop erop, komt deze alleen tevoorschijn als ik er met mijn muis over ga.
Hoe kan dit ?
als ik een gewoone JButton gebruik heb ik dit probleem niet.

Code:
package view;

import model.*;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;

/**
 * User: Glenn Jaspers
 * Date: 12-3-13
 */
public class KnopPlaats extends JButton {
    private int x;
    private int y;
    private char r;
    private Zeeslagmaster spel;
    private Spelbord spelbord;
    private ArrayList<Schip> schepen;
    private int teller;
    private ZeeslagGUI zeeslagGUI;
    private Speler speler;
    private BotenPlaatsenFrame botenPlaatsenFrame;
    private ImageIcon icon;
    Random random = new Random();


    public KnopPlaats(Zeeslagmaster spel, Spelbord spelbord, ArrayList<Schip> schepen, int teller, ZeeslagGUI zeeslagGUI, Speler speler, BotenPlaatsenFrame botenPlaatsenFrame) {
        this.spel = spel;
        this.spelbord = spelbord;
        this.schepen = schepen;
        this.teller = teller;
        this.zeeslagGUI = zeeslagGUI;
        this.speler = speler;
        this.botenPlaatsenFrame = botenPlaatsenFrame;
     
        for (Vak vak[] : spelbord.getVeld()) {
            for (Vak vak1 : vak) {
                switch (vak1) {
                    case WATER:
                        icon = new ImageIcon("images/golf.png");
                        break;
                    case SCHIP:
                        icon = new ImageIcon("images/ship_icon.png");
                        break;
                }
            }
        }

        setIcon(icon);
        //setSize(20, 20);
        setVisible(true);
        addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                placeShip();
            }

        });
    }


    public void placeShip() {

        zeeslagGUI.setTeller(zeeslagGUI.getTeller() + 1);
        spel.setX(getX());
        spel.setY(getY());

        if (botenPlaatsenFrame.getRdbHorizontaal().isSelected() == true) {
            spel.setR('h');
        } else {
            spel.setR('v');
        }
        try {
            spel.plaatsSchepen(spelbord, schepen.get(zeeslagGUI.getTeller()));
        } catch (IllegalArgumentException e1) {
            JOptionPane.showMessageDialog(null, e1.getMessage(), "OPGELET", JOptionPane.INFORMATION_MESSAGE);
            zeeslagGUI.setTeller(zeeslagGUI.getTeller() - 1);
        }
        if (zeeslagGUI.getTeller() + 1 == spelbord.getAantalSchepen()) {
            if (zeeslagGUI.getTweeSpelers() == true) {

                zeeslagGUI.setTeller(-1);
                if(speler == zeeslagGUI.getSpeler2()){
                    new SchietenFrame(zeeslagGUI, zeeslagGUI.getSpeler1(), zeeslagGUI.getSpel().getSpelbord2(), zeeslagGUI.getSpel());
                    botenPlaatsenFrame.dispose();
                } else {
                new BotenPlaatsenFrame(zeeslagGUI, zeeslagGUI.getSpeler2(), zeeslagGUI.getSpel().getSpelbord2(), zeeslagGUI.getSpel(), schepen);
                botenPlaatsenFrame.dispose();
                }

        } else {
                for (Schip schip: schepen){
                    boolean gekozen = false;
                do {
                    try {
                        spel.setX(random.nextInt(10));
                        spel.setY(random.nextInt(10));
                        int h = random.nextInt(2);
                        if (h == 0)
                            spel.setR('v');
                        else spel.setR('h');
                        spel.plaatsSchepen(spel.getSpelbord2(), schip);
                        gekozen = true;
                    } catch (IllegalArgumentException e) {
                        gekozen = false;
                    }
                } while (!gekozen);
                    System.out.println(spel.getX() +""+ spel.getR() +""+ spel.getY());
                }
            new SchietenFrame(zeeslagGUI, zeeslagGUI.getSpeler1(), zeeslagGUI.getSpel().getSpelbord2(), zeeslagGUI.getSpel());
            botenPlaatsenFrame.dispose();
        }
        // new BotenPlaatsenFrame(zeeslagGUI, zeeslagGUI.getSpeler2())
    }
    }


    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    public char getR() {
        return r;
    }

    public void setR(char r) {
        this.r = r;
    }
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan