Java GUI 不会显示 JLabel

标签 java swing user-interface jpanel frame

我想用 Java 创建一个简单的 GUI。我知道创建 JLabel 等的基础知识。但是,我找不到为什么我的 JLabel 没有显示在屏幕上。这是我的代码:

package test;

import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.*;
import javax.swing.*;

public class A1Panel extends JPanel implements ActionListener { 
    JLabel firstInt;

    public void init() {
        makeComponents();
        makeLayout();
    }

    private void makeComponents() {
        firstInt = new JLabel("First argument");
        firstInt.setFont(new Font("Helvetica", Font.BOLD, 16));
        firstInt.setBackground(Color.lightGray);
        firstInt.setVisible(true);
        firstInt.setHorizontalAlignment(SwingConstants.CENTER);
    }

    private void makeLayout() {
        add(firstInt);
    }

    public void actionPerformed(ActionEvent e) {    
    }
}

然后我使用一个名为 GUI 的不同类将我的 JPanel 添加到我的 JFrame:

import test.A1Panel;

public class GUI {
public static void main(String[] args) {       
    JFrame frame = new JFrame("Testing GUI"); 
    frame.setLayout( new GridLayout(1,3));

    JPanel panel = new A1Panel();
    panel.setBorder( BorderFactory.createRaisedBevelBorder() );
    frame.add( panel);

    frame.setSize(800,600);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.pack();
    }
}

当我点击编译时,我得到的是一个包含三个 面板的简单框架。我不明白为什么我的 JLabel 不在第一个面板中,因为我已将它添加到我的框架中。我错过了什么吗?

最佳答案

框架不是空的,面板是。在您的代码中,我没有看到对方法 init()makeComponents() 的调用。事实上,我会将您的 init() 方法变成构造函数,如下所示:

public A1Panel() {
    makeComponents();
    makeLayout();
}

另一种替代方法是在声明 JPanel panel = new A1Panel() 之后调用 panel.init()

关于Java GUI 不会显示 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13520105/

相关文章:

java - 基本 Java 应用程序因错误退出代码而关闭

java - 如何在 NetBeans GUI 构建器中使用卡片布局?

java - jtable多单元格选择

java - GridBag 布局教程

python - 在 PyQt4 中单击主屏幕上的按钮后如何打开子窗口

user-interface - 最佳用户界面,用于搜索/过滤/ bool 表达式

java - 如何从java中的静态初始化 block 返回

java - 构建Apache Hive-无法解决依赖关系

java - 如何检查特定单词旁边是否有数字?

Java 用户界面规范