1.避免每一次都到包中引用的方法:在程序的最前加入包,eg:import java.awt.BorderLayout;
import javax.swing.ImageIcon;
**注意:
没有用到的包,不要加在前面,增加程序运行的负担
2.程序的结构化管理
把布局中每一个部分分别写成一个类,有几大好处,第一,简化主程序,第二,令结构清晰明了,第三,便于查找错误,与进行修改
3.关于写界面的思路与顺序
(1)首先对要做出的界面的效果进行观察和分析,确定需要使用的布局以及组件
如在计算器中总体要用到边框式布局BorderLayout();
(2)接着根据布局为界面分块,例如,如果我用的是流式布局,那么我想要哪些组件显示在哪一部分,就要通过组件大小和对齐方式来控制;如果我用
的是边框式布局,那么,我需要哪几块部分,NORTH,SOUTH等等每一块部分放什么,怎么划分显得尤为重要,比如,在计算器界面的实现上,北部存放菜
单栏和输入框,中部存放JButton
(3)然后,用一个initUI()的方法,调用各个部分的方法,设置窗体属性,这些属性往往包括,大小 jf.setSize(),标题jf.setTitle(),背景
ImageIcon backgroundImage等等举例计算器的:
public void initUI(){
//实例化一个JFrame类
JFrame jf = new JFrame();
//设置对象的属性值
jf.setSize(328,450);//设置对象的大小
jf.setTitle("计算器");//设置对象的标题
jf.setDefaultCloseOperation(3);// 设置窗体关闭时退出程序
jf.setResizable(false);// 设置禁止改变窗体的大小
jf.setVisible(true);// 设置窗体为可见
//JFrame默认的布局是边框布局
BorderLayout bl = new BorderLayout();
// 设置窗体的布局方式为边框布局
jf.setLayout(bl);
// 创建北边的面板对象
JPanel northPane = northPane();
//northPane.setOpaque(false);//设置面板为透明
// 设置面板的大小
northPane.setPreferredSize(new Dimension(0, 150));
// 将northPane添加到窗体的北边
jf.add(northPane, BorderLayout.NORTH);
// 创建一个中间的面板对象
JPanel centerPane = centerPane();
//centerPane.setOpaque(false);//设置面板为透明
// 将centerPane添加到窗体的中间
jf.add(centerPane, BorderLayout.CENTER);
}
(4)最后,自然就是要把各部分的方法一一写好~写方法的时候,有一个统一的模式,实例化面板,实例化组件,设置组件属性,将组件添加到面板上,
最后的最后非常重要,一定要return panel~~不然会报错,也没有将设置好的方法正确的传入initUI()
4.关于做练习的感触
这次做计算器的练习很是痛苦,因为Win7的计算器的=键和0键实在是非常的奇葩!!!为了分开它的区域,伤透了脑筋,我在写这篇总结的时候还未想出
好的方法~太晚了~我准备去睡觉了~起床来再弄一下练习~这是目前的效果,还需要修改的地方有,0和=的按钮,输入框的右对齐,还有菜单栏如何设置~等我成功了再将做练习的感触这一部分详细的贴上来~~~
这是现在的练习代码:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JMenuBar;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculator {
public static void main(String[] args) {
//实例化一个Calculator类
Calculator cal = new Calculator();
cal.initUI();
}
public void initUI(){
//实例化一个JFrame类
JFrame jf = new JFrame();
//设置对象的属性值
jf.setSize(328,450);//设置对象的大小
jf.setTitle("计算器");//设置对象的标题
//jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(3);// 设置窗体关闭时退出程序
jf.setResizable(false);// 设置禁止改变窗体的大小
jf.setVisible(true);// 设置窗体为可见
//JFrame默认的布局是边框布局
BorderLayout bl = new BorderLayout();
// 设置窗体的布局方式为边框布局
jf.setLayout(bl);
// 创建北边的面板对象
JPanel northPane = northPane();
//northPane.setOpaque(false);//设置面板为透明
// 设置面板的大小
northPane.setPreferredSize(new Dimension(0, 150));
// 将northPane添加到窗体的北边
jf.add(northPane, BorderLayout.NORTH);
// 创建一个中间的面板对象
JPanel centerPane = centerPane();
//centerPane.setOpaque(false);//设置面板为透明
// 将centerPane添加到窗体的中间
jf.add(centerPane, BorderLayout.CENTER);
}
public JPanel northPane(){
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(0, 100));
// 实例化一个流式布局对象,然后指定对齐方式
FlowLayout fl = new FlowLayout(FlowLayout.LEFT);
// 设置panel的布局方式为流式布局
panel.setLayout(fl);
//实例化一个JButton类的对象,然后指定显示文字
//JMenuBar jm = new JMenuBar();
//jm.setPreferredSize(new Dimension(300,20));
//panel.add(jm);
JButton jb1 = new JButton("查看(L)");
jb1.setPreferredSize(new Dimension(100,20));
panel.add(jb1);
//实例化一个JButton类的对象,然后指定显示文字
JButton jb2 = new JButton("编辑(E)");
jb2.setPreferredSize(new Dimension(100,20));
panel.add(jb2);
//实例化一个JButton类的对象,然后指定显示文字
JButton jb3 = new JButton("帮助(H)");
jb3.setPreferredSize(new Dimension(100,20));
panel.add(jb3);
//实例化一个JTextField类的对象,初始化输入框内容为0
JTextField jt = new JTextField("0");
jt.setPreferredSize(new Dimension(300,110));
jt.setEditable(false);// 设置可以编辑
panel.add(jt);
// 返回面板对象
return panel;
}
public JPanel centerPane(){
JPanel panel = new JPanel();
//实例化一个网格布局类的对象
panel.setLayout(new GridLayout(6,5));
//添加所有的按钮
panel.add(new JButton("MC"));
panel.add(new JButton("MR"));
panel.add(new JButton("MS"));
panel.add(new JButton("M+"));
panel.add(new JButton("M-"));
panel.add(new JButton("dl"));
panel.add(new JButton("CE"));
panel.add(new JButton("C"));
panel.add(new JButton("±"));
panel.add(new JButton("√"));
panel.add(new JButton("7"));
panel.add(new JButton("8"));
panel.add(new JButton("9"));
panel.add(new JButton("/"));
panel.add(new JButton("%"));
panel.add(new JButton("4"));
panel.add(new JButton("5"));
panel.add(new JButton("6"));
panel.add(new JButton("*"));
panel.add(new JButton("1/x"));
panel.add(new JButton("1"));
panel.add(new JButton("2"));
panel.add(new JButton("3"));
panel.add(new JButton("-"));
panel.add(new JButton(" "));
panel.add(new JButton("0"));
panel.add(new JButton("00"));
panel.add(new JButton("."));
panel.add(new JButton("+"));
panel.add(new JButton("="));
//返回面板对象
return panel;
}
}
╭︿︿︿╮
{/ ︿︿ /}
( (oo) )
︶ ︶ ︶
- 大小: 17.1 KB
- 大小: 131.7 KB
分享到:
相关推荐
电影中的屌丝逆袭女神的主题,常常引发观众的共鸣,特别是在《泰囧》这部电影中,这一主题得到了淋漓尽致的展现。影片通过轻松幽默的方式讲述了普通人物王宝强如何在一系列荒诞的冒险中,实现了自己的女神梦,与...
1. 教育行业的逆袭:汪建宏,29岁,成为了黄冈中学网校的校长,从一名农村出身的“屌丝”实现了事业的巨大转变,展现了教育行业中个体通过努力和创新实现逆袭的可能性。 2. 梦想的力量:汪建宏强调梦想在个人成功中...
还原互联网早期的创业:屌丝逆袭成功之后.docx
《Java2048屌丝逆袭版》是一款基于Java编程语言实现的2048游戏,它在原版2048的基础上可能增加了一些趣味性或者挑战性的元素,使得玩家能够体验到更加丰富的游戏体验。2048游戏是由Gabriele Cirulli在2014年开发的一...
【标题】:“还原当年创业:互联网屌丝逆袭后的华丽转身” 【描述】:这篇文章讲述了中国互联网早期一位名叫H的创业者的故事,他是“网络蚂蚁”下载软件的创始人,开创了多点下载和断点续传的功能,对中国互联网...
4. 职场挫折与成长:文中多次提到作者在找工作的过程中面临的种种困难,例如,应届毕业生的身份使他在求职过程中遭受了很多歧视和拒绝。作者通过亲身体验,认识到在职场中不仅需要扎实的专业技能,还需要较强的社交...
### 图片购物搜索淘淘搜:从0到1亿用户的创业逆袭 #### 一、背景与挑战 在当今数字化时代,随着互联网技术的发展和普及,电商行业迎来了前所未有的发展机遇。然而,随着市场的日益饱和和竞争的加剧,如何在众多...
《屌丝SEO从业者逆袭篇:我要成为一个SEO管理者》这篇文档主要讲述了SEO从业者如何从基础岗位晋升为管理者的路径和所需的关键能力。以下是对这些知识点的详细解析: 首先,一个成功的SEO管理者需要具备处变不惊的...
无需会员,直接下载,全程高速,屌丝逆袭神器。无视铭感资源,全程起飞
这个东西盈利方式就是短剧cps分销那种,想做正规的话就是购买短剧授权,比如屌丝逆袭这种剧情的爽剧(类似之前做小说分销),前几集可以免费看,后续要开通会员或者购买单级。 模式还是非常不错的,个人感觉现在这...
另一种是“屌丝逆袭型”,在这种故事里,主人公借助大牌化妆品和服饰摇身一变为令人羡慕的美女或帅哥,用颜值打脸嘲笑者,实现人生的逆袭。这些套路无疑强化了“颜值即正义”的观念,即外表的美丽是成功的关键。这...
在Android应用开发中,"Retrofit+Rxjava+MVP组合屌丝APP"是一个典型的技术栈,用于构建高效、可维护的网络请求和数据管理框架。这个APP结合了多种热门技术,使得开发者能够轻松地处理网络接口调用、数据流管理和用户...
在IT领域,重装系统是一项常见的操作,尤其对于那些不熟悉技术的“屌丝”用户来说,可能是一项挑战。然而,随着技术的发展,现在有了许多简单易用的一键重装系统工具,使得这个过程变得相对轻松。本文将详细介绍如何...
本篇文章将深入探讨如何基于现有的“屌丝青年网”样式进行二次开发,创建出名为“LIiu-One”的WordPress主题。 首先,我们需要理解WordPress主题的基本结构。一个完整的WordPress主题通常包括以下部分:style.css...
(糗事百科、暴走漫画)屌丝程序员如何一个人打造日PV百万的网站架构
镜心小屌丝聊天机器人,是一款自足行为软件,试试还不错,你问什么他答什么,就是有时候有点让你想象不到。
【标题】"最新网址大全源码,好123屌丝版网址导航"涉及到的是一个网站源码项目,主要用于创建一个集成了多种常用网址的导航站点,类似于知名的"好123"导航站,主要服务于广大用户,方便他们快速访问互联网上的热门和...
日前,本技术屌丝又遇到了一个很有意思的问题,应项目要求,需要在页面加载完毕之后获取图片的高度,以此来调整图片上面的覆盖层相对于图片顶端的位置。 但在jquery(function(){ /*XXXXXX*/});里面写了之后发现不是...
第一名的小蝌蚪 小蝌蚪,高级前端工程师。 2019:保密2018:阿里淘宝技术部2013〜2017:阿里移动事业部 ...欢迎关注我的微信公众号,微信扫下二维码或搜索“前端屌丝”,发现了一个前端屌丝逆袭的心路历程,共勉。