当前位置: 首页 > 知识库问答 >
问题:

Java Jpanel没有出现

佟颖逸
2023-03-14

Java Jpanel在运行时没有显示,在几秒钟引用后触底反弹(getContentPane().add(new MeFirstApp());)在 MeFirstApp 类中

/**文件:MeFirstPanel。java**Description:这个类在JPanel中定义了一个GUI,其中包含*个带有初始标签“Me first!”的JButton还有“下一个我!”*按下任一按钮都会导致标签交换。**分配:1)在面板上添加第三个按钮,标签为“第三个”*2)每次按下任何按钮时,标签应首先向右移动一个位置-

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MeFirstPanel_Wallace extends JPanel implements ActionListener
{
    private JButton aButton;
    private JButton bButton;
    private JButton cButton;
    // add button here

    String aText = "first";
    String bText = "second";
    String cText = "third";
    // add string here

    String tempText; // To use to exchange labels

    public MeFirstPanel_Wallace()
    {
        aButton = new JButton(aText);
        aButton.addActionListener(this); // add event handler
        bButton = new JButton(bText);
        bButton.addActionListener(this); // add event handler
        cButton = new JButton(cText);
        cButton.addActionListener(this); // add event handler

        add(aButton); // add button to JPanel
        add(bButton); // add button to JPanel
        add(cButton); // add button to JPanel

    } // MeFirstPanel()


    public void actionPerformed(ActionEvent e)
    {
            tempText = aText;  // Exchange the strings
            aText = bText;
            bText = cText;
            cText = tempText;
            // add code here
            aButton.setText(aText); // Set button labels
            bButton.setText(bText);
            cButton.setText(cText);
            // add code here

    } // actionPeformed()
} // MeFirstPanel class

/*
 * File: MeFirstApp.java
 *
 * Description: This app creates a MeFirstPanel and
 *  adds it to the app's content pane.
 *
 * Assignment: see MeFirstPanel.java
 *
 */

import javax.swing.*;

public class MeFirstApp extends JFrame
{   public MeFirstApp()
    {
        setSize(200,200);
        getContentPane().add(new MeFirstApp());
        //register 'Exit upon closing' as a default close operation
        setDefaultCloseOperation( EXIT_ON_CLOSE );
    }

    public static void main(String args[]) {
        MeFirstApp b = new MeFirstApp();
        b.setVisible(true);
    } // main()

} // MeFirstApp class

共有1个答案

赵正雅
2023-03-14

您从未将MeFirstPanel_Wallace添加到MeFirstApp

作为一般的经验法则,您应该从JFrame扩展,实际上并没有向其添加任何新功能。相反,您可能会使用更像...

/*
 * File: MeFirstApp.java
 *
 * Description: This app creates a MeFirstPanel and
 *  adds it to the app's content pane.
 *
 * Assignment: see MeFirstPanel.java
 *
 */
import java.awt.EventQueue;
import javax.swing.*;

public class MeFirstApp {

    public static void main(String args[]) {
        new MeFirstApp();
    } // main()

    public MeFirstApp() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                    ex.printStackTrace();
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.add(new MeFirstPanel_Wallace());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

} // MeFirstApp class

举个例子

 类似资料:
  • 我使用java swing editor创建了一个框架,在它上面放置了一个tappedpane,然后放置了4个面板,所以我有4次点击我需要在jpanel3上查看浏览器的面板,所以我放置了一个按钮,并在其中编写了此代码,当我运行程序并按下该按钮时,我没有收到任何错误,只是没有正确导入所有内容,许可证有效 私有void jButton2ActionPerformed(java.awt.event.Ac

  • 问题内容: 当按预期执行时,goroutine不打印任何内容。 问题答案: 当函数结束时,程序也将结束。它不等待其他goroutine完成。 引用Go语言规范:程序执行: 程序执行首先初始化主程序包,然后调用函数。当该函数调用返回时,程序退出。它不等待其他(非)goroutine完成。 有关更多详细信息,请参见此答案。 您必须告诉您的函数等待以goroutine形式启动的函数完成。您可以将它们与通

  • 我肯定我忘记了一些非常简单的事情,但我不能让某些情节与Seaborn合作。 如果我这样做: 然后,我像往常一样使用matplotlib创建的任何绘图都会获得Seaborn样式(背景为灰色网格)。 但是,如果我尝试执行以下示例之一,例如: pairplot函数返回一个PairGrid对象,但不显示绘图。 我有点困惑,因为matplotlib似乎正在正常运行,并且海运样式应用于其他matplotlib

  • 我已经将Python discord机器人部署到Heroku并启用了自动部署,但是当我转到参考资料时,我在任何地方都看不到worker,即使我已经部署了它。此外,我使用的是Github,而不是CLI (据我所知,没有文件)

  • 由于某些原因,在运行此代码时,我没有得到输出。我不明白为什么。我肯定这是基本的原因,但在我看来一切都是正确的。 下面是输出:

  • 我想为游戏乒乓球创建一个简单的游戏菜单。在背景中有一个球在边缘反弹,只是为了看起来漂亮。现在我想在这个菜单屏幕上添加按钮。但是背景不再画了。所以我想画一个实时背景,但是按钮应该仍然留在前面。这个实时背景是用循环实现的。下面是GUI类和DrawStartMenueClass。 我听说过图层,但是每个人都在NetBeans中用某种工具来使用它们,我有日蚀,所以我没有那个机会。我想你可以把按钮和背景放在