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非常死板且难以调试。而是使用布局管理器
- 您发布的代码无法编译。看起来您已经尝试为本文简化了实际代码,这很好,但在此过程中,您发布了不好的不可编译代码,包括调用实例方法,就好像它是静态的一样。是的,请简化您的代码,但请不要在过程中发布错误的代码,因为您希望我们能够很好地理解您的代码和您的问题