[java]按钮JButton问题(图形按钮、按钮不显示、鼠标滑过才显示、显示位置错误等)

您所在的位置:网站首页 vba窗体背景图全屏显示不出来 [java]按钮JButton问题(图形按钮、按钮不显示、鼠标滑过才显示、显示位置错误等)

[java]按钮JButton问题(图形按钮、按钮不显示、鼠标滑过才显示、显示位置错误等)

2024-02-22 21:13| 来源: 网络整理| 查看: 265

问题目录 问题起源按钮显示位置错误(按钮充满整个窗体)按钮的添加位置按钮只有在鼠标滑过才显示

问题起源

我呢,是一名目前还在纠结毕业设计的苦逼学生。之前壮志凌云,许下:“自己的毕设要自己写”的豪情壮志。还为了防止重题,直接避开了“连连看”、“推箱子”这种网上有对照的题目,选了个“四顶棋”这个小时候玩的游戏,而且网上丝毫没有相关资料。连这个“四顶棋”的名字,都不知道是不是这个游戏的本名! 以上均是废话,往下看吧。

按钮显示位置错误(按钮充满整个窗体)

如果是将按钮添加进窗体JFrame中

//JFrame代码: setBounds(500,0,500,500); //设置窗体大小以及显示位置 JButton jbutton = new JButton("示例"); //创建按钮实例对象 add(jbutton); //向窗体中加入按钮

运行结果: 在这里插入图片描述 可以看到,整个窗体都是按钮。

这是窗体布局的问题,窗体默认布局为边界布局(BorderLayout),所以才是这个样子。可以将布局设置为流式布局即可。

//JFrame代码 setLayout(new FlowLayout()); //设置布局为流式布局 setBounds(500,0,500,500); //设置窗体大小以及显示位置 JButton jbutton = new JButton("示例"); //创建按钮实例对象 add(jbutton); //向窗体中加入按钮

运行结果:

在这里插入图片描述

还可以将布局设置为null,也就是不需要布局。这样,你添加进的所有组件均需要手动设置其位置及大小。

//JFrame代码 setLayout(null); //设置没有布局 setBounds(500,0,500,500); //设置窗体大小以及显示位置 JButton jbutton = new JButton("示例"); //创建按钮实例对象 jbutton.setBounds(0,0,100,100); //设置按钮位置及大小 add(jbutton); //向窗体中加入按钮

运行结果:

在这里插入图片描述

按钮的添加位置

我做这个游戏时,曾遇到这个问题:按钮到底是放在面板中,还是窗体中? 经过我大量实验,得出应该放在面板中。

以下是菜鸟我的理解:

窗体是最基本的框架,代表我们看到的这个窗口。面板是这个窗口的每个页面。

而我们的按钮以及其他控件虽然可以放在窗体上,但是这是建立在你没有面板的情况下。 如果有了面板,你会发现:面板会将按钮挡住!

所以我的程序,所有按钮均添加在面板中。

按钮只有在鼠标滑过才显示

这个问题是困扰我很久的一个问题。查阅了很多资料,以及各种博客。最后得出了我的解决办法:

我遇到的问题是: 按钮添加在面板中,有两个按钮。但是每次都只会显示第一个按钮,第二个需要鼠标滑过去才显示 而且如果点击面板的其他地方,所有按钮都会消失 此时鼠标滑过又会显示出来

原因: 面板的绘制,挡住了按钮

当点击面板时,会触发面板的重绘而按钮的显示没有在重绘的进程中

解决办法: 将按钮获取焦点的方法放在面板的重绘代码中

//JPanel代码 public void paintComponent(Graphics g) { //按钮重新获取焦点 startButton.requestFocus(); tableButton.requestFocus(); }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3