在单击按钮时创建的项目在 JFrame 中不可见

Posted

技术标签:

【中文标题】在单击按钮时创建的项目在 JFrame 中不可见【英文标题】:items are not visible in JFrame when created on button click 【发布时间】:2019-12-09 05:44:55 【问题描述】:

单击按钮时,我正在创建新的 JFrame,在其中添加一个 JButton 并将其设置为可见。 JFrame 可见,但 JButton 不可见。

我尝试在 *** 上找到答案,但每个人都说在添加组件后将 JFrame 设置为可见。我也这样做了,但问题仍然没有解决

下面是按钮代码

@Override
public void actionPerformed(ActionEvent arg0) 

  popup.showPopup();


我用 show popup 方法创建了一个名为“popup”的类。

下面是popup.java类的代码

package justin;

import java.awt.FlowLayout;

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

public class popupFrame 
    private JFrame f = new JFrame("Please wait...");

    public void showPopup() 
        System.out.println("Showing Popup");

        f.setSize(300, 150);

        f.setLayout(new FlowLayout());

        f.add(new JButton("Test"));

        f.setVisible(true);
    

它应该显示 JFrame 并在单击按钮时在其中添加项目。

请查看以下链接以获取我的完整代码:

https://github.com/jamesfdz/Justin-code

【问题讨论】:

1) “请查看以下链接以获取我的完整代码:” 为了尽快获得更好的帮助,edit 添加minimal reproducible example 或Short, Self Contained, Correct Example。 2)“我已经打开了一个框架”见The Use of Multiple JFrames, Good/Bad Practice? 【参考方案1】:

由于我看不到您的其余代码,因此我发布了一个示例。

public class ControlInterface

    public ControlInterface() 
        JFrame frame = new JFrame();
        frame.setSize(400, 400);
        frame.add(new JButton("Test"));
        frame.setVisible(true);
    

以及调用类:

public class BusinessLogic

    public static void main(String[] args)
    JFrame frame = new JFrame();
    frame.setSize(300, 300);
    JButton button = new JButton("Popup");
    frame.add(button);
    frame.setVisible(true);

    button.addActionListener(new ActionListener() 

        @Override
        public void actionPerformed(ActionEvent e) 
            if(e.getSource() == button) 
                new ControlInterface();
            
        
    );
    

【讨论】:

我试过了,但它不起作用。我会把完整的代码上传到 GitHub 上分享给大家。

以上是关于在单击按钮时创建的项目在 JFrame 中不可见的主要内容,如果未能解决你的问题,请参考以下文章

取消按钮在 iOS 的谷歌登录框架中不可见

可见绑定在淘汰赛 js 中不起作用

jframe中不显示形状

使用框架状态变量更新 JFrame 中的 JPanel 内容

单击按钮关闭 JFrame [重复]

单击JFrame上的退出按钮需要关闭JFrame