Удалить 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(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д