第四节课上课小结~女IT屌丝的逆袭遥遥无期
第四节课上课总结~女IT屌丝的逆袭遥遥无期~
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) )
︶ ︶ ︶
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) )
︶ ︶ ︶
1 楼
felixour
13 小时前
JTextField中右对齐可以调用setHorizontalAlignment(SwingConstants.RIGHT)方法~