`
郑惠铭
  • 浏览: 7483 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Swing界面开发的总结

阅读更多

Swing界面开发的总结
一、Java的图形界面有:

1.awt :java.awt,它是jdk1.4之前推出的图形界面类
2.swing :javax.swing,它是jdk1.4的时候推出的图形界面类

N.B:两者的不同之处在于:1.跨平台性(swing由于awt)
                         2.awt基于C、C++语言
                           swing基于Java语言
二、常用的组件有:
   
A.容器组件

1.Frame 窗体类   顶级的容器(JFrame不能往JFrame里加)
                    它有一个默认的布局为边框布局

2.JPanel 面板类    最灵活的容器(JPanel可以往JPanel里加,也可以往JFrame里加)
                它有一个默认的布局为流式布局

B.元素组件

                     JLabel     标签类
JTextField     文本输入框类
JPasswordField     密码输入框类
JCheckBox              复选框类
JButton     按钮类
JComboBox              下拉框类

N.B:容器和元素组件都是javax.swing包下的类。
     javax.swing.JFrame

三、常用的布局

           BorderLayout              边框布局
FlowLayout     流式布局
GridLayout     网格布局

N.B:1.布局类只能用在容器中。
     2.以上三种布局都是位于java.awt包下的类
   java.awt.FlowLayout

/****************************练习************************************/

1. 制作.QQ界面
package cn.zhm.study0718;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;

public class QQcenter {

/**
* 程序的入口主函数
*/
public static void main(String[] args) {
// 实例化QQcenter类的对象
QQcenter qq=new QQcenter();
//调用初始化界面的方法
qq.initUI();
}
  /**
   * 初始化界面的方法
   */
public void initUI(){

    JFrame jf=new JFrame();//实例化一个窗体对象
    jf.setTitle("QQ登录界面");//设置窗体的标题属性
    jf.setSize(380,310);//设置窗体的大小属性
    jf.setLocationRelativeTo(null);//设置窗体的显现位置为居中
    jf.setDefaultCloseOperation(3);//设置窗体关闭时退出程序
    jf.setResizable(false);//禁止调整窗体的大小
    addBackgroundImage(jf);
   
    /*****************窗体的北边************************/
    //调用创建北边面板的方法,返回创建好的面板对象
    JPanel northPanel=createNorthPanel();
    //将northPanel添加到窗体的北边
    jf.add(northPanel,BorderLayout.NORTH);
   
    /*****************窗体的西边************************/
    //调用创建西边面板的方法,返回创建好的面板对象
    JPanel westPanel=createWestPanel();
    //将westPanel添加到窗体的西边
    jf.add(westPanel,BorderLayout.WEST);
   
    /***************窗体的南边****************************/
    //调用创建南边面板的方法,返回创建好的面板对象
    JPanel southPanel=createSouthPanel();
    //将southPanel添加到窗体的南边
    jf.add(southPanel,BorderLayout.SOUTH);
   
    /******************窗体的中部***********************/
    //调用创建南边面板的方法,返回创建好的面板对象
    JPanel centerPanel=createCenterPanel();
    //将centerPanel添加到窗体的中部
    jf.add(centerPanel,BorderLayout.CENTER);
   
   
    //将窗体北边、西边、南边、中间的面板设置为透明
    northPanel.setOpaque(false);
    westPanel.setOpaque(false);
    //southPanel.setOpaque(false);
    centerPanel.setOpaque(false);
   
    jf.setVisible(true);//设置窗体可见


}
  

/**
     * 创建北边面板的方法
     */
    public JPanel createNorthPanel(){
    //实例化一个JPanel类的对象
    JPanel northPanel=new JPanel();
    //设置北边面板容器的大小
    northPanel.setPreferredSize(new Dimension(0,125));
    //设置面板的背景色
    northPanel.setBackground(Color.BLUE);
    //返回创建好的面板对象
    return northPanel;
    }
   
     /**
      * 创建西边面板的方法
      */
     public JPanel createWestPanel(){
    //实例化一个JPanel类的对象
    JPanel westPanel=new JPanel();
    //设置西边面板容器的大小
    westPanel.setPreferredSize(new Dimension(105,0));
   
         //实例化一个ImageIcon类的图标对象
    ImageIcon imag=new ImageIcon("pictures/1.png");
         //实例化一个标签对象
    JLabel jlaImage=new JLabel(imag);
    //将标签对象添加到面板上
    westPanel.add(jlaImage);
   
    //设置窗体的布局方式为流式布局
       westPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
    //返回创建好的面板对象
    return westPanel;
       }  
    /**
     * 创建南边面板的方法
     */
      public JPanel createSouthPanel(){
      //实例化一个JPanel类的对象
      JPanel southPanel=new JPanel();
      //设置南边面板容器的大小
      southPanel.setPreferredSize(new Dimension(0,45));
      //设置面板的颜色
      southPanel.setBackground(Color.WHITE);
      //实例化一个按钮组件
      JButton jbu=new JButton("登          录");
      //设置按钮对象的颜色
        jbu.setForeground(Color.WHITE);
      //设置按钮的背景颜色
      jbu.setBackground(Color.BLACK);
      //设置按钮的大小
      jbu.setPreferredSize(new Dimension(150,35));
      //将按钮添加到面板上见
      southPanel.add(jbu);
      //返回创建好的面板对象
      return southPanel;
      }
      /**
       * 创建中间面板的方法
       */
    public JPanel createCenterPanel(){
    //实例化一个JPanel类的对象
    JPanel centerPanel=new JPanel();
    //设置面板的布局方式为流式布局靠左对齐
    centerPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
    //实例化一个下拉框类的对象
    JComboBox jco=new JComboBox();
    //设置下拉框可编辑
    jco.setEditable(true);
    //给下拉框添加数据
    jco.addItem("1136207581");
    //设置下拉框的大小属性
    jco.setPreferredSize(new Dimension(180,25));
    //将下拉框添加到面板上
    centerPanel.add(jco);
   
    //实例化一个标签对象
    JLabel jla1=new JLabel("注册账号");
    //设置标签对象的颜色
    jla1.setForeground(new Color(240,200,140));
    //将标签添加到面板上
    centerPanel.add(jla1);
   
    //实例化一个密码框类的对象
    JPasswordField jpa=new JPasswordField();
    //设置密码框的大小属性
    jpa.setPreferredSize(new Dimension(180,25));
    //将密码框添加到面板上
    centerPanel.add(jpa);
   
    //实例化一个标签对象
    JLabel jla2=new JLabel("找回密码");
    //设置标签对象的颜色
    jla2.setForeground(new Color(240,200,140));
    //将标签添加到面板上
    centerPanel.add(jla2);
   
    //实例化复选框对象
    JCheckBox jch1=new JCheckBox("记住密码");
    //设置复选框对象的颜色
    jch1.setForeground(new Color(240,200,140));
   
    JCheckBox jch2=new JCheckBox("自动登录");
    //设置复选框对象的颜色
    jch2.setForeground(new Color(240,200,140));
    //设置背景透明
    jch1.setOpaque(false);
    jch2.setOpaque(false);
    //将复选框对象添加到面板上
    centerPanel.add(jch1);
    centerPanel.add(jch2);
   
    //返回创建好的面板对象
    return centerPanel;
    }
        /**
         * 给窗体添加背景图标
         */
       public void addBackgroundImage(JFrame jf){
       //实例化一个ImageIcon的图标对象
       ImageIcon image=new ImageIcon("pictures/4.png");
       //实例化一个标签类的对象
       JLabel background=new JLabel(image);
       //设置标签显示的位置和标签的大小
       background.setBounds(0,0,image.getIconWidth(),image.getIconHeight());
       //将标签添加到窗体的第二层面板上
       jf.getLayeredPane().add(background,new Integer(Integer.MIN_VALUE));
       //获取窗体的第一层面板对象
       JPanel contentPanel=(JPanel)jf.getContentPane();
       //设置第一层面板为透明
       contentPanel.setOpaque(false);
       }
}

运行结果:
            




2. 制作计算器
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class Counter2 {

/**
* 程序的入口主函数
*/
public static void main(String[] args) {
// 实例化Counter2类的对象
Counter2 cou=new Counter2();
//调用初始化界面的方法
         cou.initUI();
}
/**
  * 定义一个初始化界面的方法
  */
      public void initUI(){
      //实例化一个JFrame类的对象
      JFrame jf=new JFrame();
     
      jf.setTitle("计算器");//设置窗体的标题属性
      jf.setSize(230,320);//设置窗体的大小属性
      jf.setLocation(200,200);//设置窗体显现的位置属性
      jf.setDefaultCloseOperation(3);//设置窗体关闭时退出程序
      jf.setResizable(false);//设置禁止调整窗体大小
     
      /************窗体北边的面板容器*****************/
      //调用创建北边面板的方法,返回创建好的北边面板
      JPanel northPanel=createNorthPanel();
      //将northPanel添加到窗体的北边
      jf.add(northPanel,BorderLayout.NORTH);
     
    /**************窗体中部的面板容器***********************/
      //调用创建中部面板的方法,返回创建好的中部面板
      JPanel centerPanel=createCenterPanel();
      //将centerPanel添加到窗体的中部
      jf.add(centerPanel,BorderLayout.CENTER);
     
      /******************窗体南边的面板容器***********************/
          //调用创建南边面板的方法,返回创建好的南部面板
           JPanel southPanel=createSouthPanel();
           //将southPanel添加到窗体的南边
           jf.add(southPanel,BorderLayout.SOUTH);
          
           /*****************窗体西边的面板容器**********************/
           //调用创建西边面板的方法,返回创建好的南部面板
            JPanel westPanel=createWestPanel();
            //将westPanel添加到窗体的西边
            jf.add(westPanel,BorderLayout.WEST);
           
            /******************窗体东边的面板容器***********************/
            //调用创建南边面板的方法,返回创建好的南部面板
             JPanel eastPanel=createEastPanel();
             //将eastPanel添加到窗体的东边
             jf.add(eastPanel,BorderLayout.EAST);
            
          
      jf.setVisible(true);//设置窗体为可见
     
      }
        
      /**
   * 创建北边面板容器的方法
   */
  public JPanel createNorthPanel(){
  //实例化一个JPanel类的对象
  JPanel northPanel=new JPanel();
  //设置北边面板的大小属性
  northPanel.setPreferredSize(new Dimension(0,90));
  //实例化一个JTextField类的对象
  JTextField jte=new JTextField();
  //设置文本框的大小属性
  jte.setPreferredSize(new Dimension(210,80));
  //将文本框添加到面板上
  northPanel.add(jte);
  //返回面板的方法
  return northPanel;
  }
  /**
   * 创建西边面板容器的方法
   */
  public JPanel createWestPanel(){
  //实例化一个面板
  JPanel westPanel=new JPanel();
  //设置面板的大小属性
  westPanel.setPreferredSize(new Dimension(5,200));
  //返回面板的方法
  return westPanel;
  }
  /**
   * 创建西边面板容器的方法
   */
  public JPanel createEastPanel(){
  //实例化一个面板
  JPanel eastPanel=new JPanel();
  //设置面板的大小属性
  eastPanel.setPreferredSize(new Dimension(5,190));
  //返回面板的方法
  return eastPanel;
  }
  /**
   * 创建中间面板容器的方法
   */
  public JPanel createCenterPanel(){
  //实例化一个面板对象
  JPanel centerPanel=new JPanel();
  //设置面板的布局方式为网格布局
  centerPanel.setLayout(new GridLayout(5,4,5,5));
 
  //定义按钮类的对象
  JButton jbu1=new JButton("C");
  JButton jbu2=new JButton("MC");
  JButton jbu3=new JButton("MR");
  JButton jbu4=new JButton("M+");
  JButton jbu5=new JButton("←");
  JButton jbu6=new JButton("±");
  JButton jbu7=new JButton("%");
  JButton jbu8=new JButton("÷");
  JButton jbu9=new JButton("7");
  JButton jbu10=new JButton("8");
  JButton jbu11=new JButton("9");
  JButton jbu12=new JButton("×");
  JButton jbu13=new JButton("4");
  JButton jbu14=new JButton("5");
  JButton jbu15=new JButton("6");
  JButton jbu16=new JButton("-");
  JButton jbu17=new JButton("1");
  JButton jbu18=new JButton("2");
  JButton jbu19=new JButton("3");
  JButton jbu20=new JButton("+");
 
  //将按钮添加到面板上
  centerPanel.add(jbu1);
  centerPanel.add(jbu2);
  centerPanel.add(jbu3);
  centerPanel.add(jbu4);
  centerPanel.add(jbu5);
  centerPanel.add(jbu6);
  centerPanel.add(jbu7);
  centerPanel.add(jbu8);
  centerPanel.add(jbu9);
  centerPanel.add(jbu10);
  centerPanel.add(jbu11);
  centerPanel.add(jbu12);
  centerPanel.add(jbu13);
  centerPanel.add(jbu14);
  centerPanel.add(jbu15);
  centerPanel.add(jbu16);
  centerPanel.add(jbu17);
  centerPanel.add(jbu18);
  centerPanel.add(jbu19);
  centerPanel.add(jbu20);
 
  return centerPanel;
 
  }
    /*
     * 创建南边面板容器的方法
     */
     public JPanel createSouthPanel(){
    //实例化一个JPanel类的对象
    JPanel southPanel=new JPanel();
    //设置面板的大小属性
    southPanel.setPreferredSize(new Dimension(230,40));
    //设置窗体的布局方式为流式布局
    southPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
    //实例化按钮类对象
    JButton jbu21=new JButton("0");
JButton jbu22=new JButton(".");
JButton jbu23=new JButton("=");
//设置按钮类的大小
jbu21.setPreferredSize(new Dimension(103,30));
jbu22.setPreferredSize(new Dimension(50,30));
jbu23.setPreferredSize(new Dimension(50,30));
//将按钮添加到面板上
southPanel.add(jbu21);
southPanel.add(jbu22);
southPanel.add(jbu23);
//返回创建好的面板对象
return southPanel;
   
     }
}

运行结果:
          



N.B:
需要注意的地方:1.边框布局的Center是不可以调整大小的!只有North、South、East、West可以调整大小!
                2.设置颜色的时候可以参考画图板的颜色编辑参数。
                3.放入网格布局中的按钮不可以设置大小。
                4.可用ctrl+shift+o导入包。
                5.我不熟悉的:
        /**
         * 给窗体添加背景图标
         */
        public void addBackgroundImage(JFrame jf){
       //实例化一个ImageIcon的图标对象
       ImageIcon image=new ImageIcon("pictures/4.png");
       //实例化一个标签类的对象
       JLabel background=new JLabel(image);
       //设置标签显示的位置和标签的大小
       background.setBounds(0,0,image.getIconWidth(),image.getIconHeight());
       //将标签添加到窗体的第二层面板上
       jf.getLayeredPane().add(background,new Integer(Integer.MIN_VALUE));
       //获取窗体的第一层面板对象
       JPanel contentPanel=(JPanel)jf.getContentPane();
       //设置第一层面板为透明
       contentPanel.setOpaque(false);
       }

  • 大小: 7.7 KB
  • 大小: 50 KB
分享到:
评论

相关推荐

    JAVA总结之 简单的SWING界面开发

    NULL 博文链接:https://hugo-vern.iteye.com/blog/1977064

    一本糊涂账-基于Swing和JDBC开发的图形界面桌面应用

    本项目是基于Swing和JDBC开发的图形界面桌面应用,涵盖了J2SE的绝大部分基础知识,通过这个项目能运用和锻炼几乎大部分的J2SE知识和技能。 基础内容: 面向对象 字符串数字 日期 中级内容: 异常 ,集合,JDBC,...

    swing界面设计之JTree

    (一) Spring 开发 Swing GUI 简介——依赖注入和富客户机 5 关于本教程 5 前提条件 6 Spring 和依赖注入概述 7 什么是 Spring 框架? 7 什么是依赖注入? 7 环境设置 7 选择编译环境 7 设置 Ant 8 通过 Ant 自动下载...

    java课设之征名管理系统Swing图形化界面

    java课设之征名管理系统,用swing做的全部界面,内含完整程序源码以及详细注释,课程设计要求,软件需求 分析说明书,课程设计总结报告,活动图、软件原型、用例图的全部原图,已生成jar包和javadoc文档,软件需求...

    swing中文乱码问题(Linux和window)

    swing 开发 Linux和window系统解决乱码参考文档,个人总结,不喜勿碰

    基于设计模式的Java swing交互式界面模式的应用研究与实现

    随着计算机与软件的进步,人机交互...如编辑框,滚动条,弹出菜单等的做法,由此形成了一个开发swing风格界面的 集成界面模板工具。最后,文章结尾总结了提出和研究设计的这套方案在意义和不足,以及进一步的工作。

    基于Swing技术下的酒店客房信息管理系统源码+数据库+WORD毕业论文文档.zip

    本文介绍了酒店客房管理系统的开发过程,详尽论述了需求分析、系统分析、概要设计、详细设计、以及测试与调试的整个开发过程,总结了开发过程中的经验及本系统今后的改进方向。 关键词:SWING;MYSQL;信息管理;...

    Java Swing 第三版 英文

    Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件...

    Java Swing仿“酷我音乐盒”界面,搭建简单通用前端框架

    使用java swing技术开发的简易UI框架,整个框架模仿“酷我音乐盒”的皮肤,可以直接基于此搭建桌面项目,也可以拿源代码研究学习...

    Swing开发的固定资产管理系统(完整版+源码)

    是因为运用了swing的一些美观技术,实现起来也非常容易,还总结了Swing的各种控件的用法,尤其是对表(table)树(tree)的实现更经典,运用了很多算法之类的,把重复的代码封装成为通用的,这样可以使开发人员加快...

    基于Swing技术下的酒店客房信息管理系统源码含文档.zip

    本文介绍了酒店客房管理系统的开发过程,详尽论述了需求分析、系统分析、概要设计、详细设计、以及测试与调试的整个开发过程,总结了开发过程中的经验及本系统今后的改进方向。 关键词:SWING;MYSQL;信息管理;酒店...

    浅析Java中Swing与SWT和AWT的区别及实现_王亚南

    Swing 和 SWT,AWT 技术都是在 Java 图形化界面设计中常用的开发包,在进行 Java GUI 编程时,大家或许经 常徘徊在 SWT,Swing,AWT 之间选择,哪一个更合适自己? 本文简单介绍了三者中各自的功能特点,以及之间的区别...

    基于java的雷电游戏GUL_swing软件设计源码+WORD毕业论文文档.zip

    基于java的雷电游戏GUL_swing软件设计源码+WORD毕业论文文档. 基于java的雷电游戏基本功能包括:敌方飞机随机飞行、我方飞机手动控制飞行,射击比拼,游戏闯关等。本系统结构如下: (1)雷电游戏状态调整功能: ...

    Swing实现简易版数据库浏览器

    项目背景 目前市面上现有的数据库工具,比较出名的有Navicat、Toad、PLSQL等等,这些工具功能都是比较强大的。...对于普通开发人员来说,这一款数据库浏览器能够满足最基本的需求,系统运行占用内存小、界面友好。

    ZK框架学习总结

    可以做到没有JavaScript,只通过ZUML(ZK User Interface Markup Language)这种标识语言即可做到界面创建和事件响应。 ZK的实现完全用java实现,开发过程中不会有任何的JavaScript代码,但是通过将zul文件(ZK的...

    Java GUI 程序设计:一个使用 Java Swing 设计的日历小程序.zip

    总结来说,【小程序名称】凭借其小巧便携、快捷高效的特性,不仅节省了用户的手机存储空间,更为用户提供了无缝衔接的便利服务,是现代生活中不可或缺的一部分,真正实现了“触手可及”的智能生活新体验。...

    java 编程入门思考

    6.6 递增开发 6.7 上溯造型 6.7.1 何谓“上溯造型”? 6.8 final关键字 6.8.1 final数据 6.8.2 final方法 6.8.3 final类 6.8.4 final的注意事项 6.9 初始化和类装载 6.9.1 继承初始化 6.10 总结 6.11 练习 第7章 ...

    JAVA课程设计-基于mysql的学生信息管理系统.doc

    15 二、 书写习惯养成 15 三、 注意程序简洁 15 总结 16 参考文献 17 附录:项目源代码 18 一、 数据库连接(DbConnection.java) 18 二、 学生信息数据库管理(Student_Dao.java) 18 三、 欢迎界面(Welcome.java...

    Java实验报告——用户登录系统

    1、实验项目名称:用户登录系统 2、实验要求: (1)了解自定义异常的用法; (2)熟悉异常处理机制及创建自定义异常。 3、使用:在了解Java异常机制的基础上自己编写的实验报告。

    《Java程序设计实训》报告 多人聊天室

    其界面主要采用了java.awt包,java.swing包等。程序实现了聊天室的基本功能,其中有: 1.启动服务器。  2.启动登陆界面。  3.进入客户端界面。 4.发送信息。  5.离开客户端界面。  6.关闭服务器

Global site tag (gtag.js) - Google Analytics