首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >框架不显示组件,除非调整大小(JAVA )。无法修复

框架不显示组件,除非调整大小(JAVA )。无法修复
EN

Stack Overflow用户
提问于 2021-11-15 22:35:49
回答 1查看 35关注 0票数 1

我在做计算器。我添加了一些按钮和一个textField。我面临的问题是,当我运行我的项目时,它不会显示作为按钮的组件,但是当我调整帧的大小时,按钮就会立即出现。这并不总是这样,有时按钮出现,有时直到调整帧的大小。试图增加帧宽和高度,但这对我没有帮助。当按钮没有显示时,我会附加代码和计算器的图像。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class CalculatorUsingAWT {
    CalculatorUsingAWT(){
        Frame frame = new Frame("CALCKY");
        Panel panel_1 = new Panel();
        panel_1.setBounds(0,0,400,100);
        panel_1.setBackground(new Color(43, 11, 51));
        frame.add(panel_1);
        frame.setLayout(null);
        frame.setBounds(550,100,400,549);
//        frame.setResizable(false);
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        TextField textField = new TextField();
        textField.setBounds(25,45,350,40);
        textField.setBackground(new Color(43, 11, 51));
        textField.setForeground(Color.WHITE);
        textField.setFont(new Font("SAN_SERIF",Font.BOLD,30));
        textField.setEditable(false);
        panel_1.setLayout(null);
        panel_1.add(textField);

        Panel panel_2 = new Panel();
        panel_2.setLayout(new GridLayout(6,4));
        panel_2.setBounds(0,100,401,450);
        panel_2.setBackground(new Color(43, 11, 51));
        frame.add(panel_2);
        Button button_1 = new Button("1");
        button_1.setBackground(new Color(43, 11, 51));
        button_1.setFont(new Font("ARIAL",Font.BOLD,30));
        button_1.setForeground(Color.WHITE);
        Button button_2 = new Button("2");
        button_2.setBackground(new Color(43, 11, 51));
        button_2.setFont(new Font("ARIAL",Font.BOLD,30));
        button_2.setForeground(Color.WHITE);
        Button button_3 = new Button("3");
        button_3.setBackground(new Color(43, 11, 51));
        button_3.setFont(new Font("ARIAL",Font.BOLD,30));
        button_3.setForeground(Color.WHITE);
        Button button_4 = new Button("4");
        button_4.setBackground(new Color(43, 11, 51));
        button_4.setFont(new Font("ARIAL",Font.BOLD,30));
        button_4.setForeground(Color.WHITE);
        Button button_5 = new Button("5");
        button_5.setBackground(new Color(43, 11, 51));
        button_5.setFont(new Font("ARIAL",Font.BOLD,30));
        button_5.setForeground(Color.WHITE);
        Button button_6 = new Button("6");
        button_6.setBackground(new Color(43, 11, 51));
        button_6.setFont(new Font("ARIAL",Font.BOLD,30));
        button_6.setForeground(Color.WHITE);
        Button button_7 = new Button("7");
        button_7.setBackground(new Color(43, 11, 51));
        button_7.setFont(new Font("ARIAL",Font.BOLD,30));
        button_7.setForeground(Color.WHITE);
        Button button_8 = new Button("8");
        button_8.setBackground(new Color(43, 11, 51));
        button_8.setFont(new Font("ARIAL",Font.BOLD,30));
        button_8.setForeground(Color.WHITE);
        Button button_9 = new Button("9");
        button_9.setBackground(new Color(43, 11, 51));
        button_9.setFont(new Font("ARIAL",Font.BOLD,30));
        button_9.setForeground(Color.WHITE);
        Button button_10 = new Button("+");
        button_10.setBackground(new Color(43, 11, 51));
        button_10.setFont(new Font("ARIAL",Font.BOLD,30));
        button_10.setForeground(Color.WHITE);
        Button button_11 = new Button("-");
        button_11.setBackground(new Color(43, 11, 51));
        button_11.setFont(new Font("ARIAL",Font.BOLD,30));
        button_11.setForeground(Color.WHITE);
        Button button_12 = new Button("*");
        button_12.setBackground(new Color(43, 11, 51));
        button_12.setFont(new Font("ARIAL",Font.BOLD,30));
        button_12.setForeground(Color.WHITE);
        Button button_13 = new Button("/");
        button_13.setBackground(new Color(43, 11, 51));
        button_13.setFont(new Font("ARIAL",Font.BOLD,30));
        button_13.setForeground(Color.WHITE);
        Button button_14 = new Button("=");
        button_14.setBackground(Color.BLUE);
        button_14.setFont(new Font("ARIAL",Font.BOLD,30));
        button_14.setForeground(Color.WHITE);
        Button button_15 = new Button("%");
        button_15.setBackground(new Color(43, 11, 51));
        button_15.setFont(new Font("ARIAL",Font.BOLD,30));
        button_15.setForeground(Color.WHITE);
        Button button_16 = new Button("CE");
        button_16.setBackground(new Color(43, 11, 51));
        button_16.setFont(new Font("ARIAL",Font.BOLD,30));
        button_16.setForeground(Color.WHITE);
        Button button_17 = new Button("C");
        button_17.setBackground(new Color(43, 11, 51));
        button_17.setFont(new Font("ARIAL",Font.BOLD,30));
        button_17.setForeground(Color.WHITE);
        Button button_18 = new Button("x^2");
        button_18.setBackground(new Color(43, 11, 51));
        button_18.setFont(new Font("ARIAL",Font.BOLD,30));
        button_18.setForeground(Color.WHITE);

        panel_2.add(button_1);
        panel_2.add(button_2);
        panel_2.add(button_3);
        panel_2.add(button_4);
        panel_2.add(button_5);
        panel_2.add(button_6);
        panel_2.add(button_7);
        panel_2.add(button_8);
        panel_2.add(button_9);
        panel_2.add(button_10);
        panel_2.add(button_11);
        panel_2.add(button_12);
        panel_2.add(button_13);
        panel_2.add(button_14);
        panel_2.add(button_15);
        panel_2.add(button_16);
        panel_2.add(button_17);
        panel_2.add(button_18);



    }

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-15 23:10:09

这里的问题是,在设置可见之前,GUI还没有添加组件并进行验证(在pack()操作期间调用)。

  1. frame.setLayout(null);移除它。把组件放出来。有关布局计算器的一种方法,请参见this answer

实际上,要将该代码转换为所有使用布局而不是null的代码,请使用BorderLayout。将TextField放在BorderLayout.PAGE_START中,GridLayout和按钮放在BorderLayout.CENTER中-布局就完成了!

  1. frame.setVisible(true);将其移到末尾,并将其放在frame.pack();之后。这将使GUI达到所需的精确大小,以适应GUI中的组件。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69984708

复制
相关文章
phpStorm字体大小无法调整, 怎么办?
最近上手了一款轻量级IDE phpStorm,可是就在调整编辑器字体大小时却遇到问题了, 发现字体大小无法调整,另外还有字体大小往左还有个“√”,始终无法去掉,这个勾限制了字体系列,就可怜巴巴的那几个,就下图那几个:
全栈程序员站长
2022/07/08
1.1K0
phpStorm字体大小无法调整, 怎么办?
修复WordPress上Gravatar头像无法显示问题
Cravatar 是 Gravatar 在中国的完美替代方案,在此你可以自由的上传和分享头像。
用户2740655
2022/06/19
1.5K0
bootcamp您的磁盘未能分区_bootcamp无法调整分区大小
朋友把mac book pro拿来让我帮删除下用bootcamp安装的win10系统,于是就打开mac进入实用工具->磁盘工具->点击左侧磁盘列表中的Macintosh HD根目录,右侧选择分区,然后点击右侧分区布局列表中的BOOTCAMP,点下面的『-』号,再点移除,系统提示『您的磁盘不能恢复为单一的分区』。
全栈程序员站长
2022/09/22
3.7K0
bootcamp您的磁盘未能分区_bootcamp无法调整分区大小
Linux调整Swap大小
关闭swap swapoff -a 1.创建交换分区的文件:增加2G大小的交换分区 dd if=/dev/zero of=/var/swapfile bs=1M count=2048 2.设置交换文件 mkswap /var/swapfile 3.启用交换分区文件 swapon /var/swapfile 4.在/etc/fstab添加 echo '/var/swapfile swap swap defaults 0 0'>>/etc/fstab 5.检查 free -m
苦咖啡
2018/04/28
8.7K0
调整JVM内存大小
JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能;Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。有以下几种方法可以选用:
MonroeCode
2018/01/12
3.2K0
ECharts散点图大小调整
在业务需求中,有时候会遇到ECharts散点图,现在记录一下,今天解决了一个小问题,ECharts散点图大小调整。
王小婷
2019/05/07
5.1K0
ECharts散点图大小调整
小程序checkbox调整大小
.cb{ transform: scale(0.6,0.6); } <view> <label class="lab" for="box1"> <checkbox value="v1" checked class="cb"/>复选框 </label> </view>
苦咖啡
2018/04/28
4.1K0
子比主题百度登录头像无法显示修复
最近一直发现我的博客老是有用户头像无法显示,且发现全是百度登录的用户,就让我很苦恼
小N同学
2022/03/01
5110
子比主题百度登录头像无法显示修复
修复miniblink无法显示某个网站的某个图标的bug
起因是有大量用户反馈,他们的某个网站用了WEX5的日历控件,控件的切换年月日的图标显示不出来了:
龙泉寺扫地僧
2019/02/20
8480
修复miniblink无法显示某个网站的某个图标的bug
Flutter(二)--布局机制、布局步骤、水平和垂直布局、组件大小动态调整Flutter(二)--布局机制、布局步骤、水平和垂直布局、组件大小动态调整
布局机制 flutter的布局机制是组件,flutter中几乎一切都是组件,除了图片、文字等,还有用来排列、限制、对齐这些可见组件的行、列、网格等(可理解为系统样式)。 image.png 布局步骤
用户8893176
2021/08/09
1.7K0
Flutter(二)--布局机制、布局步骤、水平和垂直布局、组件大小动态调整Flutter(二)--布局机制、布局步骤、水平和垂直布局、组件大小动态调整
调整屏幕显示亮度
使用SeekBar控件来控制 布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_pa
听着music睡
2018/05/18
9120
修复WordPress升级4.2外观菜单中显示选项无法点击问题
WordPress 升级 4.2 之后,目前发现存在如下 3 个问题: 有部分主题的前台会产生大量的 404 错误请求(站外资源); 评论表情名称变更导致表情无法显示或者无法通过钩子更改; 外观-->
张戈
2018/03/23
1K0
修复WordPress升级4.2外观菜单中显示选项无法点击问题
InnoDB 缓冲池大小调整
从MySQL 5.7.5开始,我们可以动态修改InnoDB Buffer Pool的大小。这个新特性同时也引入了一个参数--innodb_buffer_pool_chunk_size,buffer pool会根据这个参数值的整数倍增加或减小。这个参数不是动态修改的,如果配置错误,可能会导致不想看到的结果。
田帅萌
2019/01/23
5.6K0
InnoDB 缓冲池大小调整
VMware 中 Linux 调整分区大小
Precondition :VMware Player 中安装的Fedora 17 Linux 32bit,个人较久远的测试环境,安装时没有进行磁盘规划,默认20G空间(动态调整),安装在根/下。 Background :在上述环境中安装IBM DB2 Express-C 10.5(v10.5fp1_linuxia32_expc.tar.gz),安装时/tmp空间不足,无法安装。 Plan:需要进行磁盘扩容。考虑到使用VMware Player虚拟机。
gigiwangs
2019/02/28
6.9K0
python 调整图片大小 脚本
infile = 'D:\original_img.jpg' outfile = 'D:\adjust_img.jpg' im = Image.open(infile) (x,y) = im.size #read image size x_s = 250 #define standard width y_s = y * x_s / x #calc height based on standard width out = im.resize((x_s,y_s),Image.ANTIALIAS) #resize image with high-quality out.save(outfile)
用户5760343
2022/05/13
2K0
HPUX调整LUN大小识别更改
磁盘阵列通常允许调整 LUN 的大小,如果增加 LUN 的大小,请执行以下步骤将附加空间合并到卷组中: 1、按照阵列说明增加 LUN 的大小。 2、运行 vgmodify 检测任何物理卷大小更改。还将报告卷组能否使用所有空间。 3、如果 vgmodify 报告,每个物理卷的最大物理盘区数 (max_pe) 太小,无法容纳新增的空     间,请使用带 -t 和 -n 选项的 vgmodify 确定 max_pe 的新值,如“修改卷组参数” 4、按照新的设置运行带 -r 选项的 vgmodify 检查这些值。 5、停用卷组。 6、提交 max_pe 的任何新值,运行不带 -r 选项的 vgmodify 更新物理卷信息。 7、激活卷组。运行 vgdisplay 和 pvdisplay 命令验证增加的空间是否可用。
星哥玩云
2022/06/30
1.5K0
Markdown 调整图片位置与大小
使用 Markdown 编写文档或博客时,经常需要对图片的位置与尺寸进行调整。 插入图片后,Markdown 表示图片的语法格式如下: ![图片描述](图片URL地址) 调整图片位置 居左 (1)方法一:添加位置标识。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200822014538211.png#pic_left) (2)方法二:嵌入 HTML 代码。 <div align="left"> <img src=https://img-blog.csdnimg.c
恋喵大鲤鱼
2020/08/24
43.3K0
Markdown 调整图片位置与大小
Visio如何调整锁定图像大小
在Visio中,比如模板中的UML类图,是不可调整大小的,这可能给我们设计图片带来了一些不便之处,如下图: 可以看到其边框是显示锁定状态无法修改的,当我们在左下角修改器长宽时,也会出现不可修改的情况。
码农阿宇
2018/04/18
4.5K0
Visio如何调整锁定图像大小
tomcat文件上传大小限制_tomcat调整内存大小
Get方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。
全栈程序员站长
2022/09/23
4.6K0
android全屏显示隐藏状态栏_怎么调整手机状态栏的大小
android:background=”#FF000000″改为android:background=”#00000000″
全栈程序员站长
2022/09/27
1.9K0

相似问题

除非调整窗口的大小,否则组件不会显示- Java

13

java阻止组件在调整框架大小时调整大小

21

在框架调整Java时调整组件的大小

21

Java - JLabel组件仅在调整大小时显示

20

无法在java windowbuilder中调整组件大小

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文