软件的层次结构之Swing

来源:互联网 发布:万能视频修复软件 编辑:程序博客网 时间:2024/05/06 23:00


软件的三个层次:表现层;业务层;持久层;

业务层
图形界面
1.历史
 1.1 SUN Jdk1.1 AWT 控件少,不方便应用开发
 1.2 Java 1.2 Swing 基于AWT的绘图功能重绘的界面组件,提供了极其丰富的界面组件
  a.性能极慢
  b.结构优秀(MVC)
  c.实际应用很少,
 1.3 IBM提供了SWT(AWT+Swing)
  a.采用本地C代码完成控件绘制,性能好,Eclipse
  b.实际应用很少
Swing应用
1 JFrame代表一个窗口控件
 包括标题栏、控制按钮、边框及内容面板(contentPane)
2 JLable用来在GUI上显示文本或图片
3 面板(JPanel)用来组织控件的矩形区域
 JFrame window=new JFrame("Do考试系统");
 window.setSize(300, 200);
 window.getContentPane().add(new JLabel("welcome to Do"));
 window.setVisible(true);

关于布局管理:控制组件在面板中的显示位置
1 空布局
----JFrame(w,h)
 |----JPanel(w,h)
  |----JButton(x,y,w,h)
 

package ELTS;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;public class ELTS {public static void main(String[] args) {JFrame window=new JFrame("Do");window.setSize(574, 390);JPanel panel=new JPanel();panel.setLayout(null);//布局方式为空布局window.setContentPane(panel);JButton ok=new JButton("ok");panel.add(ok);ok.setLocation(392,327);//位置ok.setSize(92,21);//大小JButton exit=new JButton("exit");panel.add(exit);exit.setLocation(466, 327);exit.setSize(92, 21);window.setVisible(true);}}



2 布局管理器(相对位置布局,组件的大小及位置由布局控制器控制)
 a BoarderLayout(边框布局) 规定组件大小及相对位置
 将一个面板相对分为“东”“南”“西”“北”,每个位置只能放置一个组件,“中”会自动地向其他四个方向填充,即只有“中”会填充整个面板
 -----------------------------------
   |                北                |
   |               North              |
   |----------------------------------|
   |        |               |         |
   |   西   |       中      |    东   |
   |        |     Center    |         |
   |----------------------------------|
   |                南                |
   |              South               |
   ------------------------------------
  
   b FlowLayout(流式布局)
   多个元素顺序排列(居中排放),一排满了,排另一排

例:

package ELTS;import java.awt.BorderLayout;import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;public class ELTS {public static void main(String[] args) {JFrame window=new JFrame("Do");JPanel windowPanel=new JPanel(new BorderLayout());//设置边框布局JPanel sPannl=new JPanel(new BorderLayout());//设置边框布局JPanel left =new JPanel(new FlowLayout());JPanel rightPanel=new JPanel(new FlowLayout());//设置流布局JButton ok=new JButton("ok");//创建按键JButton canal=new JButton("canal");//创建按键JButton help=new JButton("?");window.setSize(500, 400);//设置窗体大小window.setContentPane(windowPanel);//窗体添加边框布局windowPanel.add(BorderLayout.SOUTH,sPannl);//边框布局南部添加 sPannlsPannl.add(BorderLayout.EAST,rightPanel);//边框布局东部部添加 rightPanelsPannl.add(BorderLayout.WEST,left);rightPanel.add(ok);//流布局添加按键rightPanel.add(canal);//流布局添加按键left.add(help);window.setVisible(true);//设置可见}}


原创粉丝点击