Java Swing GUI 应用程序完全空白,没有任何内容,而按钮添加到面板中

标签 java swing user-interface jframe jpanel

我已经构建了一个基于 Swing 的 GUI,它构建成功。但运行后,它只显示一个空白的白色框架,上面没有任何文本、按钮。

我已经检查了 GUI 元素是否已添加到面板中 (myPanel.add(bTest, "Card1");)。另外 $$$setupUI$$$(); 应该在构造函数之后执行。

代码:

package voc;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class GUI extends JFrame {
    private JPanel myPanel;
    private JButton bTest;
    private JTextArea tEnterTranslation;

    public GUI() {

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
        bTest.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                super.mouseClicked(e);
            }
        });
    }

    public static void create() {
        GUI gui = new GUI();
    }


    public static void main(String[] args) {
        create();
    }


    {
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
        $$$setupUI$$$();
    }

    /**
     * Method generated by IntelliJ IDEA GUI Designer
     * >>> IMPORTANT!! <<<
     * DO NOT edit this method OR call it in your code!
     *
     * @noinspection ALL
     */
    private void $$$setupUI$$$() {
        myPanel = new JPanel();
        myPanel.setLayout(new CardLayout(0, 0));
        myPanel.setMaximumSize(new Dimension(500, 500));
        myPanel.setMinimumSize(new Dimension(500, 500));
        myPanel.setPreferredSize(new Dimension(500, 500));
        myPanel.setBorder(BorderFactory.createTitledBorder(null, "voc", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font(myPanel.getFont().getName(), myPanel.getFont().getStyle(), myPanel.getFont().getSize()), new Color(-4497096)));
        bTest = new JButton();
        bTest.setMinimumSize(new Dimension(10, 20));
        bTest.setText("Button");
        myPanel.add(bTest, "Card1");
        tEnterTranslation = new JTextArea();
        tEnterTranslation.setMinimumSize(new Dimension(20, 15));
        tEnterTranslation.setPreferredSize(new Dimension(20, 15));
        tEnterTranslation.setText("");
        myPanel.add(tEnterTranslation, "Card2");
    }

    /**
     * @noinspection ALL
     */
    public JComponent $$$getRootComponent$$$() {
        return myPanel;
    }
}

最佳答案

您忘记将 JPanel 添加到 JFramecontentPane()

public GUI() {

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.getContentPane().add(myPanel); <--------------------------------- HERE
    this.setVisible(true);
    bTest.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            super.mouseClicked(e);
        }
    });
}
<小时/>

添加

如果我是您,我也会使用 JFrame#setSize(Dimension) 因为您的 JFrame 现在将以最小尺寸显示。

关于Java Swing GUI 应用程序完全空白,没有任何内容,而按钮添加到面板中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36101974/

相关文章:

java - 使用 JButtons 将文本添加到两个文本字段

java - 如何改变图像的亮度

JavaScript/HTML 悬停菜单/工具栏

java - 如何从 Java 代码创建 gml 文件

java applet - 数组检查

java - 在java中接收参数问题

css - 如何使用 Tailwind 自定义深色模式颜色

java - 如何使用 FileOutputStream 删除 .txt 文件中的一行?

java - 我正在用java制作一个简单的绘画程序,我可以绘画,但是当我最小化窗口或调整大小时,我画的东西就会消失。我怎样才能让他们留下来?

user-interface - 用于编写 GUI 应用程序的编程语言