标签做同样的事情,一旦我关闭框架并打开它,标签做两次,然后三次,很好



当我打开f7[JFrame]时,它会执行jop,但当我关闭并打开同一个框架时,它执行相同的jop,但两次,当我打开并关闭它时,它再次执行jop,但是三次,我如何解决这个问题

这是一个名为";u7";并且变量超出了函数

我从相同的脚本中调用它,其中的函数和主框架


ImageIcon les7[] = {
new ImageIcon(getClass().getClassLoader().getResource("U7-1.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-2.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-3.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-4.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-5.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-6.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-7.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-8.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-9.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-10.png"))};
Image be7 = les7[0].getImage();
Image in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
ImageIcon af7 = new ImageIcon(in7);

JFrame f7 = new JFrame();
JLabel lessons7 = new JLabel();

JLabel bak7 = new JLabel("Back");
JLabel nxt7 = new JLabel("Next");
JLabel ext7 = new JLabel("Exit");

boolean b71 = true, b72 = true, b73 = true, b74 = true, b75 = true, b76 = true, b77 = true, b78 = true, b79 = true;
boolean b71f = true, b72f = true, b73f = true, b74f = true, b75f = true, b76f = true, b77f = true, b78f = true, b79f = true;

boolean su7 = false;
void u7() {

f7.setTitle("English");
f7.setSize(600, 800);
f7.setLocationRelativeTo(null);
f7.setResizable(false);
f7.setLayout(null);

lessons7.setBounds(0, 0, 600, 711);

lessons7.setIcon(af7);

nxt7.setBounds(0, 711, 150, 50);
nxt7.setBackground(new Color(50, 50, 50));
nxt7.setOpaque(true);
nxt7.setForeground(Color.white);
nxt7.setHorizontalAlignment(nxt7.CENTER);
nxt7.setFont(font);
nxt7.setBorder(BorderFactory.createLineBorder(Color.black, 5));
nxt7.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
if(be7.equals(les7[0].getImage()) && b71) {
be7 = les7[1].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b71 = false;
b71f = true;
}
else if(be7.equals(les7[1].getImage()) && b72) {
be7 = les7[2].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b72 = false;
b72f = true;
}
else if(be7.equals(les7[2].getImage()) && b73) {
be7 = les7[3].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b73 = false;
b73f = true;
}
else if(be7.equals(les7[3].getImage()) && b74) {
be7 = les7[4].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b74 = false;
b74f = true;
}
else if(be7.equals(les7[4].getImage()) && b75) {
be7 = les7[5].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b75 = false;
b75f = true;
}
else if(be7.equals(les7[5].getImage()) && b76) {
be7 = les7[6].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b76 = false;
b76f = true;
}
else if(be7.equals(les7[6].getImage()) && b77) {
be7 = les7[7].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b77 = false;
b77f = true;
}
else if(be7.equals(les7[7].getImage()) && b78) {
be7 = les7[8].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b78 = false;
b78f = true;
}
else if(be7.equals(les7[8].getImage()) && b79) {
be7 = les7[9].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b79 = false;
b79f = true;
}
}
});

bak7.setBounds(434, 711, 150, 50);
bak7.setBackground(new Color(50, 50, 50));
bak7.setOpaque(true);
bak7.setForeground(Color.white);
bak7.setHorizontalAlignment(bak7.CENTER);
bak7.setFont(font);
bak7.setBorder(BorderFactory.createLineBorder(Color.black, 5));
bak7.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
if(be7.equals(les7[1].getImage()) && b71f) {
be7 = les7[0].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b71f = false;
b71 = true;
}
else if(be7.equals(les7[2].getImage()) && b72f) {
be7 = les7[1].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b72f = false;
b72 = true;
}
else if(be7.equals(les7[3].getImage()) && b73f) {
be7 = les7[2].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b73f = false;
b73 = true;
}
else if(be7.equals(les7[4].getImage()) && b74f) {
be7 = les7[3].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b74f = false;
b74 = true;
}
else if(be7.equals(les7[5].getImage()) && b75f) {
be7 = les7[4].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b75f = false;
b75 = true;
}
else if(be7.equals(les7[6].getImage()) && b76f) {
be7 = les7[5].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b76f = false;
b76 = true;
}
else if(be7.equals(les7[7].getImage()) && b77f) {
be7 = les7[6].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b77f = false;
b77 = true;
}
else if(be7.equals(les7[8].getImage()) && b78f) {
be7 = les7[7].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b78f = false;
b78 = true;
}
else if(be7.equals(les7[9].getImage()) && b79f) {
be7 = les7[8].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b79f = false;
b79 = true;
}
}
});

ext7.setBounds(220, 711, 150, 50);
ext7.setBackground(new Color(50, 50, 50));
ext7.setOpaque(true);
ext7.setForeground(Color.white);
ext7.setHorizontalAlignment(ext7.CENTER);
ext7.setFont(font);
ext7.setBorder(BorderFactory.createLineBorder(Color.black, 5));
ext7.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
ex7(bak7, ext7, nxt7, 434, 220, 0);
}
});

f7.add(lessons7);
f7.add(bak7);
f7.add(ext7);
f7.add(nxt7);
if(!su7) {
su7 = true;
f7.setVisible(true);            
}
f7.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent evt) {
su7 = false;
}
});
}
void ex7(JLabel b , JLabel e, JLabel n, int bx, int ex, int nx) {
SwingWorker<Void, Void> w = new SwingWorker<Void, Void>() {
@Override
public Void doInBackground() throws Exception{
int speed1 = 0, speed2 = 0;
for(int y = 711; y > 600;) {
b.setLocation(bx, y);
n.setLocation(nx, y);
y -= speed1;
speed1 += 2;
Thread.sleep(10);
System.out.println(y);
}
Thread.sleep(100);
for(int y = 711; y < 800;) {
e.setLocation(ex, y);
y += speed2;
speed2 += 2;
Thread.sleep(10);
}
Thread.sleep(100);
f7.setVisible(false);
su7 = false;
return null;

}
};
w.execute();
}

此处的所有脚本

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.lang.*;

public class EnglishFrame extends JFrame{
JLabel units[] = {new JLabel("Unit 7"), new JLabel("Unit 8"), new JLabel("Unit 9"), new JLabel("Unit 10"), new JLabel("Unit 11"), new JLabel("Unit 12")};
JFrame Units[] = {new JFrame("Unit 7"), new JFrame("Unit 8"), new JFrame("Unit 9"), new JFrame("Unit 10"), new JFrame("Unit 11"), new JFrame("Unit 12")};
JLabel LabelIcons[] = {new JLabel(""), new JLabel(""), new JLabel(""), new JLabel(""), new JLabel(""), new JLabel(""), new JLabel("")};
ImageIcon units_icons[] = {new ImageIcon(getClass().getClassLoader().getResource("Unit7.png")), new ImageIcon(getClass().getClassLoader().getResource("Unit8.png")), new ImageIcon(getClass().getClassLoader().getResource("Unit9.png")), new ImageIcon(getClass().getClassLoader().getResource("Unit10.png")), new ImageIcon(getClass().getClassLoader().getResource("Unit11.png")), new ImageIcon(getClass().getClassLoader().getResource("Unit12.png"))};
MainFrame mainframe ;
Font font = new Font("Ink Free", Font.BOLD, 30);

JLabel bak = new JLabel("Back");


public EnglishFrame(MainFrame mainframe) {
this.mainframe = mainframe;

create_Frame();
create_Units();
create_Frames();
create_buttons();
}
void create_Frame() {
setTitle("English");
setSize(800, 600);
setLocationRelativeTo(null);
setResizable(false);
setLayout(null);
}
void create_Frames() {
int counter = 7;
for(int count = 0; count < 6; count ++) {
Units[count].setTitle("Unit " + counter);
Units[count].setSize(800, 600);
Units[count].setLocationRelativeTo(null);
Units[count].setResizable(false);
Units[count].setLayout(null);
counter ++;
}
}
void create_Units() {
int x = 20;

for(int count = 0; count < 5; count ++) {
units[count].setBounds(x, 40, 100, 30);
units[count].setFont(font);
units[count].setForeground(Color.black);

add(units[count]);

x += 160;
}
units[5].setBounds(340, 184, 105, 30);
units[5].setFont(font);
units[5].setForeground(Color.black);

add(units[5]);

units[0].addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
LabelIcons[0].setBounds(8, 70, 105, 60);

Image img = units_icons[0].getImage();
Image imgscale = img.getScaledInstance(LabelIcons[0].getWidth(), LabelIcons[0].getHeight(), Image.SCALE_SMOOTH);
ImageIcon icon = new ImageIcon(imgscale);
LabelIcons[0].setIcon(icon);

}
@Override
public void mouseExited(MouseEvent e) {
//              LabelIcons[0].setBounds(0, 0, 0, 0);
Animations.fa(LabelIcons, 0, 8, 70);

}
@Override
public void mouseClicked(MouseEvent e) {
u7();
}
});
units[1].addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
LabelIcons[1].setBounds(170, 70, 105, 60);

Image img = units_icons[1].getImage();
Image imgscale = img.getScaledInstance(LabelIcons[1].getWidth(), LabelIcons[1].getHeight(), Image.SCALE_SMOOTH);
ImageIcon icon = new ImageIcon(imgscale);
LabelIcons[1].setIcon(icon);

}
@Override
public void mouseExited(MouseEvent e) {

Animations.fa(LabelIcons, 1, 170, 70);

}
@Override
public void mouseClicked(MouseEvent e) {
//              eng.create_Frame();
JOptionPane.showMessageDialog(null, "Sorry There Wasn't Any Time To Make This", "U9", JOptionPane.CLOSED_OPTION);
}
});
units[2].addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
LabelIcons[2].setBounds(330, 70, 105, 60);

Image img = units_icons[2].getImage();
Image imgscale = img.getScaledInstance(LabelIcons[2].getWidth(), LabelIcons[2].getHeight(), Image.SCALE_SMOOTH);
ImageIcon icon = new ImageIcon(imgscale);
LabelIcons[2].setIcon(icon);

}
@Override
public void mouseExited(MouseEvent e) {
Animations.fa(LabelIcons, 2, 330, 70);

}
@Override
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(null, "Sorry There Wasn't Any Time To Make This", "U9", JOptionPane.CLOSED_OPTION);
}
});
units[3].addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
LabelIcons[3].setBounds(497, 70, 105, 60);

Image img = units_icons[3].getImage();
Image imgscale = img.getScaledInstance(LabelIcons[3].getWidth(), LabelIcons[3].getHeight(), Image.SCALE_SMOOTH);
ImageIcon icon = new ImageIcon(imgscale);
LabelIcons[3].setIcon(icon);

}
@Override
public void mouseExited(MouseEvent e) {
//              LabelIcons[3].setBounds(0, 0, 0, 0);
Animations.fa(LabelIcons, 3, 497, 70);

}
@Override
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(null, "Sorry There Wasn't Any Time To Make This", "U10", JOptionPane.CLOSED_OPTION);
}
});
units[4].addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
LabelIcons[4].setBounds(654, 70, 105, 60);

Image img = units_icons[4].getImage();
Image imgscale = img.getScaledInstance(LabelIcons[4].getWidth(), LabelIcons[4].getHeight(), Image.SCALE_SMOOTH);
ImageIcon icon = new ImageIcon(imgscale);
LabelIcons[4].setIcon(icon);

}
@Override
public void mouseExited(MouseEvent e) {
//              LabelIcons[4].setBounds(0, 0, 0, 0);
Animations.fa(LabelIcons, 4, 654, 70);

}
@Override
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(null, "Sorry There Wasn't Any Time To Make This", "U11", JOptionPane.CLOSED_OPTION);
}
});
units[5].addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
LabelIcons[5].setBounds(335, 214, 105, 60);

Image img = units_icons[5].getImage();
Image imgscale = img.getScaledInstance(LabelIcons[5].getWidth(), LabelIcons[5].getHeight(), Image.SCALE_SMOOTH);
ImageIcon icon = new ImageIcon(imgscale);
LabelIcons[5].setIcon(icon);

}
@Override
public void mouseExited(MouseEvent e) {
//              LabelIcons[5].setBounds(0, 0, 0, 0);
Animations.fa(LabelIcons, 5, 335, 214);

}
@Override
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(null, "Sorry There Wasn't Any Time To Make This", "U12", JOptionPane.CLOSED_OPTION);
}
});

add(LabelIcons[0]);
add(LabelIcons[1]);
add(LabelIcons[2]);
add(LabelIcons[3]);
add(LabelIcons[4]);
add(LabelIcons[5]);
}
void create_buttons() {
bak.setBounds(620, 500, 150, 50);
bak.setBackground(new Color(50, 50, 50));
bak.setOpaque(true);
bak.setForeground(Color.white);
bak.setHorizontalAlignment(bak.CENTER);
bak.setFont(font);
bak.setBorder(BorderFactory.createLineBorder(Color.black, 5));
bak.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
dispose();
}
});

add(bak);
}
ImageIcon les7[] = {
new ImageIcon(getClass().getClassLoader().getResource("U7-1.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-2.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-3.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-4.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-5.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-6.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-7.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-8.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-9.png")),
new ImageIcon(getClass().getClassLoader().getResource("U7-10.png"))};
Image be7 = les7[0].getImage();
Image in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
ImageIcon af7 = new ImageIcon(in7);

JFrame f7 = new JFrame();
JLabel lessons7 = new JLabel();

JLabel bak7 = new JLabel("Back");
JLabel nxt7 = new JLabel("Next");
JLabel ext7 = new JLabel("Exit");

boolean b71 = true, b72 = true, b73 = true, b74 = true, b75 = true, b76 = true, b77 = true, b78 = true, b79 = true;
boolean b71f = true, b72f = true, b73f = true, b74f = true, b75f = true, b76f = true, b77f = true, b78f = true, b79f = true;

boolean su7 = false;

void u7() {

f7.setTitle("English");
f7.setSize(600, 800);
f7.setLocationRelativeTo(null);
f7.setResizable(false);
f7.setLayout(null);

lessons7.setBounds(0, 0, 600, 711);

lessons7.setIcon(af7);

nxt7.setBounds(0, 711, 150, 50);
nxt7.setBackground(new Color(50, 50, 50));
nxt7.setOpaque(true);
nxt7.setForeground(Color.white);
nxt7.setHorizontalAlignment(nxt7.CENTER);
nxt7.setFont(font);
nxt7.setBorder(BorderFactory.createLineBorder(Color.black, 5));
nxt7.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
if(be7.equals(les7[0].getImage()) && b71) {
be7 = les7[1].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b71 = false;
b71f = true;
}
else if(be7.equals(les7[1].getImage()) && b72) {
be7 = les7[2].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b72 = false;
b72f = true;
}
else if(be7.equals(les7[2].getImage()) && b73) {
be7 = les7[3].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b73 = false;
b73f = true;
}
else if(be7.equals(les7[3].getImage()) && b74) {
be7 = les7[4].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b74 = false;
b74f = true;
}
else if(be7.equals(les7[4].getImage()) && b75) {
be7 = les7[5].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b75 = false;
b75f = true;
}
else if(be7.equals(les7[5].getImage()) && b76) {
be7 = les7[6].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b76 = false;
b76f = true;
}
else if(be7.equals(les7[6].getImage()) && b77) {
be7 = les7[7].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b77 = false;
b77f = true;
}
else if(be7.equals(les7[7].getImage()) && b78) {
be7 = les7[8].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b78 = false;
b78f = true;
}
else if(be7.equals(les7[8].getImage()) && b79) {
be7 = les7[9].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b79 = false;
b79f = true;
}
}
});

bak7.setBounds(434, 711, 150, 50);
bak7.setBackground(new Color(50, 50, 50));
bak7.setOpaque(true);
bak7.setForeground(Color.white);
bak7.setHorizontalAlignment(bak7.CENTER);
bak7.setFont(font);
bak7.setBorder(BorderFactory.createLineBorder(Color.black, 5));
bak7.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
if(be7.equals(les7[1].getImage()) && b71f) {
be7 = les7[0].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b71f = false;
b71 = true;
}
else if(be7.equals(les7[2].getImage()) && b72f) {
be7 = les7[1].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b72f = false;
b72 = true;
}
else if(be7.equals(les7[3].getImage()) && b73f) {
be7 = les7[2].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b73f = false;
b73 = true;
}
else if(be7.equals(les7[4].getImage()) && b74f) {
be7 = les7[3].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b74f = false;
b74 = true;
}
else if(be7.equals(les7[5].getImage()) && b75f) {
be7 = les7[4].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b75f = false;
b75 = true;
}
else if(be7.equals(les7[6].getImage()) && b76f) {
be7 = les7[5].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b76f = false;
b76 = true;
}
else if(be7.equals(les7[7].getImage()) && b77f) {
be7 = les7[6].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b77f = false;
b77 = true;
}
else if(be7.equals(les7[8].getImage()) && b78f) {
be7 = les7[7].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b78f = false;
b78 = true;
}
else if(be7.equals(les7[9].getImage()) && b79f) {
be7 = les7[8].getImage();
in7 = be7.getScaledInstance(600, 711, be7.SCALE_SMOOTH);
af7 = new ImageIcon(in7);
lessons7.setIcon(af7);
System.out.println("Why");
b79f = false;
b79 = true;
}
}
});

ext7.setBounds(220, 711, 150, 50);
ext7.setBackground(new Color(50, 50, 50));
ext7.setOpaque(true);
ext7.setForeground(Color.white);
ext7.setHorizontalAlignment(ext7.CENTER);
ext7.setFont(font);
ext7.setBorder(BorderFactory.createLineBorder(Color.black, 5));
ext7.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
ex7(bak7, ext7, nxt7, 434, 220, 0);
}
});

f7.add(lessons7);
f7.add(bak7);
f7.add(ext7);
f7.add(nxt7);
if(!su7) {
su7 = true;
f7.setVisible(true);            
}
f7.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent evt) {
su7 = false;
}
});
}
void ex7(JLabel b , JLabel e, JLabel n, int bx, int ex, int nx) {
SwingWorker<Void, Void> w = new SwingWorker<Void, Void>() {
@Override
public Void doInBackground() throws Exception{
int speed1 = 0, speed2 = 0;
for(int y = 711; y > 600;) {
b.setLocation(bx, y);
n.setLocation(nx, y);
y -= speed1;
speed1 += 2;
Thread.sleep(10);
System.out.println(y);
}
Thread.sleep(100);
for(int y = 711; y < 800;) {
e.setLocation(ex, y);
y += speed2;
speed2 += 2;
Thread.sleep(10);
}
Thread.sleep(100);
f7.setVisible(false);
su7 = false;
return null;

}
};
w.execute();
}
}
```

您在u7()方法中添加了一堆侦听器,每次调用此方法时,您都会将相同的侦听器重新添加到相同的GUI组件中,这样它们就会被添加两次,然后下次调用该方法时,它们会再次被重新添加,现在是3次。。。等等…

因此,当组件事件被激活时,该事件可能会触发侦听器的多次迭代。

解决方案是只添加一次监听器,可能是在该实例上只调用一次的位置,例如其构造函数,而不是在可以而且可能会被多次调用的公共方法中。


旁注1:
您的变量和方法名称非常神秘,这使得其他人(很可能还有您未来的自己(很难理解这些组件在做什么。最好给你的字段、方法和类提供描述性的名称,这将使你的代码自我注释,更容易理解。此外,您还需要学习和使用Java命名约定。变量名都应该以小写字母开头,而类名应该以大写字母开头。学习并遵循这一点将使我们更好地理解您的代码,并使您更好地理解他人的代码。


旁注2:
有些变量的名称以数字或单个字母结尾,这表明您可能希望使用数组或ArrayList来替换该变量及其兄弟,并减少不必要的代码冗余。此外,通过使用布局管理器,您可以减少更多不必要的代码冗余,使代码更易于调试和增强。


旁注3:
您应该避免使用空布局和setBounds(...)来放置组件,因为这会导致GUI非常不灵活,虽然它们在一个平台上看起来不错,但在大多数其他平台或屏幕分辨率上看起来很糟糕,而且很难更新和维护。

相关内容

最新更新