Удалить JLabel class по условию в нем же - Java

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, как в данном случае можно удалить этот объект при выполнении в условия ?
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.Timer;

public class rrr 
{
    public JFrame window = new JFrame();

    public rrr()
    {
        window.setSize(800, 600);   
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.white);
        window.setLayout(null);
        window.setResizable(false);
        window.setLocationRelativeTo(null);
        
        general();
        
        window.setVisible(true);
    }

    private void general()
    {   
        window.add(new gang());
    }

    public class gang extends JLabel
    {
        private static final long serialVersionUID = 1L;
        private int speed = 9;
        public int xBullet = 70;
        public int yBullet = 20;
        public gang()
        {       
            fps();
            makeBullet();
        }

        private void fps()
        {         
            Timer fpsTimer = new Timer(8, new fpsListener());
            fpsTimer.start();
        }

        public class fpsListener implements ActionListener
        {       
            public void actionPerformed(ActionEvent e)
            {
                setLocation(xBullet += speed,yBullet);
                
                if (xBullet > 500)
                {
                    //как удалиться ?
                    setVisible(false);
                    //window.repaint();
                    //window.revalidate();
                }
            }
        }

         private void makeBullet()
         {
            setBounds(xBullet, yBullet, 40, 40);
            ImageIcon enemyPic = new ImageIcon("data/bullet0.png");
            setIcon(enemyPic);
            setHorizontalAlignment(SwingConstants.CENTER);
            setLayout(null);
            setOpaque(false);
         }
    }

    public static void main(String[] args) 
    {
        new rrr();
    }
}

Решение задачи: «Удалить JLabel class по условию в нем же»

textual
Листинг программы
package base;
 
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.SwingConstants;
import javax.swing.Timer;
 
 
public class OwlAdv 
{
    private JFrame window = new JFrame("Super Owl");
    public int collisioX;
    public int collisioY;
    public JLayeredPane swap = window.getLayeredPane();
    //public JLayeredPane swap = new JLayeredPane();
    public int numBullet = 1;
    public Gang myGang_1;
    public boolean booGang_1 = true;
    public Gang myGang_2;
    public boolean booGang_2 = true;
    public Gang myGang_3;
    public boolean booGang_3 = true;
    
    public OwlAdv()
    {
        window.setSize(800, 600);   
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.white);
        window.setLayout(null);
        window.setResizable(false);
        window.setLocationRelativeTo(null);
        
        general();
        
        window.setVisible(true);
    }
    
    
    private void general()
    {   
        for (int i = 0; i < 3; i++)
        {
            window.add(new BaseEnemy());
        }
        window.add(new BaseOwl());
        window.add(new BaseFon());
    }
    
    
    //@SuppressWarnings("serial")//serial - отключение предупреждений, связанных с недостающим полем serialVersionUID в классе, допускающем сериализацию
    public class BaseFon extends JLabel
    {
        private static final long serialVersionUID = 1L;
 
 
        public BaseFon()
        {
            makeFon();
        }
        
        
        private void makeFon()
        {
            setBounds(0, 0, 800, 600);
            ImageIcon Fon0 = new ImageIcon("data/fon0.jpg");
            setIcon(Fon0);
            setHorizontalAlignment(SwingConstants.CENTER);
            setLayout(null);
        }
    }
    
    
    
    public class BaseOwl extends JLabel
    {
        private static final long serialVersionUID = 1L;
        private int speed = 4;
        public int yOwl = 260;
        public int xOwl = 50;
        private String controlMoveOwl = "stay";
        
        
        public BaseOwl()
        {
            setFocusable(true);
            
            fps_keys();
            makeOwl();
        }
        
        
        private void fps_keys()
        {
            KeyListener InputHand = new fpsListener();
            addKeyListener(InputHand);
            
            Timer fpsTimer = new Timer(10, new fpsListener());
            fpsTimer.start();
        }
        
        
        public class fpsListener implements ActionListener, KeyListener
        {
            public void actionPerformed(ActionEvent e)
            {
                if (controlMoveOwl == "up" && yOwl > 5)
                {
                    setLocation(xOwl,yOwl -= speed);
                }
                if (controlMoveOwl == "down" && yOwl < 480)
                {
                    setLocation(xOwl,yOwl += speed);
                }
                
                collisioX = xOwl;
                collisioY = yOwl;
            }
            
            
            public void keyPressed(KeyEvent e)
            {
                switch (e.getKeyCode()) 
                {
                case KeyEvent.VK_UP:
                    controlMoveOwl = "up";
                    System.out.println("Up key pressed");
                    break;
                case KeyEvent.VK_DOWN:
                    controlMoveOwl = "down";
                    System.out.println("Down key pressed");
                    break;
                case KeyEvent.VK_SPACE:
                    //window.add(new Gang()); 
                    //swap.add(new Gang(), new Integer(50), 0);
                    //myGang = new Gang();
                    //swap.add(myGang, new Integer(50), 0);
                    
                    if (numBullet == 1 && booGang_1 == true)
                    {
                        booGang_1 = false;
                        myGang_1 = new Gang();
                        swap.add(myGang_1, new Integer(50), 0);
                    }
                    if (numBullet == 2 && booGang_2 == true)
                    {
                        booGang_2 = false;
                        myGang_2 = new Gang();
                        swap.add(myGang_2, new Integer(51), 0);
                    }
                    if (numBullet == 3 && booGang_3 == true)
                    {
                        booGang_3 = false;
                        myGang_3 = new Gang();
                        swap.add(myGang_3, new Integer(52), 0);
                    }
                    
                    if (((int) (booGang_1 ? 1 : 0)) + ((int) (booGang_2 ? 1 : 0)) + ((int) (booGang_3 ? 1 : 0)) > 0)
                    {
                        numBullet++;
                    }
                    
                    if (numBullet == 4)
                    {
                        numBullet = 1;
                    }
                    break;
                }
            }
 
            
            public void keyReleased(KeyEvent e)
            {
                switch (e.getKeyCode()) 
                {
                case KeyEvent.VK_UP:
                    controlMoveOwl = "stay";
                    System.out.println("Up key released");
                    break;
                case KeyEvent.VK_DOWN:
                    controlMoveOwl = "stay";
                    System.out.println("Down key released");
                    break;
                }
            }
 
 
            public void keyTyped(KeyEvent e)
            {
                //...
            }
        }
        
        
        private void makeOwl()
        {
            setBounds(xOwl, yOwl, 80, 80);
            ImageIcon owlPic = new ImageIcon("data/Owlalpha.png");
            setIcon(owlPic);
            setHorizontalAlignment(SwingConstants.CENTER);
            setLayout(null);
            setOpaque(false);
        }
    }
    
    
    public class Gang extends JLabel
    {
        private static final long serialVersionUID = 1L;
        private int speed = 9;
        public int xBullet = collisioX + 70;
        public int yBullet = collisioY + 20;
        private int meClass = numBullet;
        private Timer fpsTimer;
        
        
        public Gang()
        {
            
            fps();
            makeBullet();
            
            System.out.println(numBullet);
        }
    
        
        private void fps()
        {         
            fpsTimer = new Timer(8, new fpsListener());
            fpsTimer.start();
        }
        
         
        public class fpsListener implements ActionListener
        {       
            public void actionPerformed(ActionEvent e)
            {
                setLocation(xBullet += speed,yBullet);
                
                if (xBullet > 500)
                {
                    //setVisible(false);
                    if (meClass == 1)
                    {       
                        booGang_1 = true;
                        swap.remove(myGang_1);
                    }
                    if (meClass == 2)
                    {
                        booGang_2 = true;
                        swap.remove(myGang_2);
                    }
                    if (meClass == 3)
                    {
                        booGang_3 = true;
                        swap.remove(myGang_3);
                    }
                                                        
                    fpsTimer.stop();
                }
            }
        }
        
         
         private void makeBullet()
         {
            setBounds(xBullet, yBullet, 40, 40);
            ImageIcon enemyPic = new ImageIcon("data/bullet0.png");
            setIcon(enemyPic);
            setHorizontalAlignment(SwingConstants.CENTER);
            setLayout(null);
            setOpaque(false);
         }
    }
    
 
    public class BaseEnemy extends JLabel
    {
        private static final long serialVersionUID = 1L;
        //private int speed = 4;
        private Random PosY = new Random();
        private Random PosS = new Random();
        private int[] arrY = new int[]{5,260,480};
        private int yEnemy = arrY[PosY.nextInt(arrY.length)];;
        private int[] arrS = new int[]{2,6,12};
        private int speed = arrS[PosS.nextInt(arrS.length)];;
        //public int yEnemy = 260;
        public int xEnemy = 880;
        //baseOwl i = new baseOwl();
        
        public BaseEnemy()
        {       
            fps();
            makeEnemy();
        }
        
        
        private void fps()
        {         
            Timer fpsTimer = new Timer(8, new fpsListener());
            fpsTimer.start();
        }
        
        
        public class fpsListener implements ActionListener
        {       
            public void actionPerformed(ActionEvent e)
            {
                if (xEnemy > -120)
                {   
                    setLocation(xEnemy -= speed,yEnemy);
                }
                else
                {
                    xEnemy = 880;
                    yEnemy = arrY[PosY.nextInt(arrY.length)];;
                    speed = arrS[PosS.nextInt(arrS.length)];;
                }
                if (collisioX + 40 > xEnemy - 40 && collisioX - 40 < xEnemy + 40 && collisioY + 40 > yEnemy - 40 && collisioY - 40 < yEnemy + 40)
                {
                    xEnemy = 880;
                    yEnemy = arrY[PosY.nextInt(arrY.length)];;
                    speed = arrS[PosS.nextInt(arrS.length)];;
                    System.out.println("ah ah ah");
                }
                //System.out.println(i.xOwl);
            }
        }
        
        
        private void makeEnemy()
        {
            setBounds(xEnemy, yEnemy, 80, 80);
            ImageIcon enemyPic = new ImageIcon("data/Enemyalpha.png");
            setIcon(enemyPic);
            setHorizontalAlignment(SwingConstants.CENTER);
            setLayout(null);
            setOpaque(false);
        }
    }
    
    public static void main(String[] args) 
    {
        new OwlAdv();
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5