java - 没有显示错误,但看不到 JButton 和 Label
问题描述
我是编码新手,我遇到了这个问题,它没有显示我在 GUI 中添加的 JButton 和 JLabel。我做错了什么,我该如何解决?
import java.awt.ComponentOrientation;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
public class MainMenu {
public static void main (String []args) {
JFrame frame = new JFrame ("Main Menu");
frame.setSize(480,720);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3,2,5,5));
JButton meals = new JButton ("Meals");
JLabel label = new JLabel ("Welcome back!");
panel.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
panel.add(meals);
panel.add(label);
frame.add(panel);
}
}
解决方案
发生这种情况是因为您frame.setVisible(true);
在向其添加任何组件之前。您应该首先将组件添加到框架中,然后使用该setVisible
方法。
panel.add(meals);
panel.add(label);
frame.add(panel);
frame.setVisible(true); //visible after components added
推荐阅读
- python - 正则表达式和 Python glob
- excel - 如何计算 Microsoft Excel 中的目标年数
- node.js - 异步/等待外部变量访问
- time-complexity - 评估二项式系数的时间复杂度
- javascript - 如何使我的复选框仅被单击一次,而在 React.js 中未选中其他复选框
- java - 使用扫描仪从文本文件中读取某一行
- javascript - React Hooks 与 Redux 保持 App 状态
- node.js - 将动态生成的图像提供给聊天机器人
- c# - 如何在 C# 中动态链接 Linq 方法?
- python - 通过按钮使用功能时 Kivy 更新标签失败