`
zhuozhuobeauty
  • 浏览: 17155 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

第四节课上课总结~女IT屌丝的逆袭遥遥无期~

    博客分类:
  • java
 
阅读更多
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
分享到:
评论
2 楼 zhuozhuobeauty 2013-07-14  
好的,我试试~~~多谢啦
1 楼 felixour 2013-07-11  
JTextField中右对齐可以调用setHorizontalAlignment(SwingConstants.RIGHT)方法~

相关推荐

Global site tag (gtag.js) - Google Analytics