Java swing 添加来自另一个类的组件

Posted

技术标签:

【中文标题】Java swing 添加来自另一个类的组件【英文标题】:Java swing add Components from another Class 【发布时间】:2013-07-24 07:41:58 【问题描述】:

我正在学习 Java Swing 组件,我想在按下按钮时这样做,Java Swing 会将另一个类的标签添加到 JFrame 屏幕中。它只是一个简单的开始示例。

我想学习如何使用和添加另一个类的摆动组件。

可能会有一些愚蠢的错误,但不要评判我,我是新人^^

框架类添加按钮

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;


public class Frame extends JFrame
    private JButton btn;
    private boolean regCompl = false;

    public Frame()
        super("The title Macas");
        setLayout(new FlowLayout());

        btn = new JButton("Push for Registration");
        btn.addActionListener(
            new ActionListener()
                @Override
                public void actionPerformed(ActionEvent event) 
                    regCompl = true;

                       
                       
        );
        add(btn);

        if(regCompl == true)
            RegComplete regObj = new RegComplete(this);
        

    // end of constructor

RegComplete 类在按下按钮后向屏幕添加标签。

import javax.swing.JButton;
import javax.swing.JLabel;

public class RegComplete 
    Frame frame;

    private JLabel label;


    public RegComplete(Frame fm)
        this.frame = fm;

        label = new JLabel("Hello world Mac4s");
        fm.add(label);
    

【问题讨论】:

那么什么不起作用?你的问题是什么? @chancea 当我按下按钮时,Java Swing 会将另一个类的标签添加到 JFrame 屏幕中。 【参考方案1】:

你必须在动作监听器中创建对象

btn = new JButton("Push for Registration");
        btn.addActionListener(
            new ActionListener()
                @Override
                public void actionPerformed(ActionEvent event) 
                     RegComplete regObj = new RegComplete(Frame.this);

                       
                       
        );

【讨论】:

Meeran 你在正确的轨道上,你必须将this 更改为Frame.this

以上是关于Java swing 添加来自另一个类的组件的主要内容,如果未能解决你的问题,请参考以下文章

从另一个类访问 Swing 组件

java Swing第2集:向JFrame添加组件

java swing编程问题:一个jframe中添加一个jpanel后,为jpanel添加一个滚动条,当jpanel中内容过多时滑动

java swing两个内容切换

徐思201771010132《面向对象程序设计(Java)》第十二周学习总结

在 JFrame 中添加来自同一类的两个组件