Java 我可以从另一个类打开函数,但没有效果。。。为什么?

Java 我可以从另一个类打开函数,但没有效果。。。为什么?,java,swing,Java,Swing,这是我的代码 public class A { JLabel A = new JLabel() ; public JLabel newform(){ A.setBounds(0 , 197, 409, 245); A.setIcon(createImageIcon("/Pictures/BG.png")); return A; } public void swinginDown_NF ( ){ AnimationClas

这是我的代码

public class A {

JLabel A = new JLabel() ;

public JLabel newform(){
 A.setBounds(0 , 197, 409, 245);
 A.setIcon(createImageIcon("/Pictures/BG.png"));
   return A; }          

       public void swinginDown_NF ( ){
             AnimationClass AC = new AnimationClass();  
             AC.jLabelYDown(A.getY(), 270, 6, 1,A);
        }
B类

public class B {
JLabel B = new JLabel() ;

public JLabel Box(){
 B.setBounds(170 , 197, 409, 245);
 B.setIcon(createImageIcon("/Pictures/BBD.png"));
 B.addMouseListener(new java.awt.event.MouseAdapter() {
                    public final void mouseClicked(java.awt.event.MouseEvent evt) {
                    A a_class = new A();    
                    a_class.swinginDown_NF();
                    } });  

   return B; } 

JFrame frame = new JFrame(" AA ");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);

 JLabel Label = new JLabel() ;

 A a = new A();
 B b = new B()  ;



 Label.add(B.Box());

 Label.add(A.newform());

 frame.getContentPane().add( Label , BorderLayout.CENTER);        
当我在标签框中单击时,我的问题在标签新表单中没有发生任何事情


当我在标签框中单击函数swingDown时,它将打开,但标签不会下降。。。。。。为什么?

您正在使用向下摆动方法创建一个新对象,该对象与显示的对象完全独立且唯一,因此更改新对象的状态对显示的对象没有影响。您必须将显示的引用传递到需要的位置。例如,您可以让B类在其构造函数中接受A参数

一些附带建议:

  • 请学习并遵循Java命名和格式约定,因为您的代码很难遵循
  • 你有相同名称的类和字段,A和B。同样,这只会让我们和未来感到困惑——永远不要这样做
  • 尽可能避免空布局和设置框,因为这会导致GUI非常死板且难以调试。而是使用布局管理器
  • 您发布的代码无法编译。看起来您已经尝试为本文简化了实际代码,这很好,但在此过程中,您发布了不好的不可编译代码,包括调用实例方法,就好像它是静态的一样。是的,请简化您的代码,但请不要在过程中发布错误的代码,因为您希望我们能够很好地理解您的代码和您的问题

B类创建自己的类实例,并调用该类的方法,而不是添加到JFrame中的方法。您应该将添加到屏幕中的类的实例发送给B,以便它可以使用该实例调用上的方法。是的,您是对的,它的工作非常感谢您