Java课程设计(1)

  1. 图形用户界面(GUI)使用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便的发送指令,并将运行结果以图形方式显示得给用户。
  2. 抽象窗口工具包(AWT)(重要级,依赖于平台):容器类,UI组件类,帮助类。
  3. JDK1.2以后,引入javax.swing(轻量级),是AWT的子类。

Java的图形用户界面的最基本组成部分是组件,组件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,例如一个按钮,一个标签等。

  • 组件不能独立的显示出来,必须将组件放在一定的容器中才可以显示出来。
  • 在componen类中定义了AWT组件具有的一般功能如大小和位置控制,外形控制,组件的状态控制等。
  • AWT支持的组件:按钮、标签、文本框、文本区、复选框、单选按钮、滚动条。复选按钮、表格、菜单等。

容器:

  • 容器(container)实际上是component的子类,因此容器本身也是一个组件,具有组件的所有性质,另外还具有容纳其它组件和容器的功能,通过容器来组织其它界面成分和元素。
  • 容器类具有的功能是组件管理和布局管理。在组件管理中,包含的方法有add()、remove()、getComponent()等,分别用于添加组件、删除组件和获得某个组件。
  • container类可以直接或间接派生出两个常用容器:框架(Frame类)和面板(panel类)。

帮助类:

  • graphics类:是所有用来在组件上进行图形绘制时所使用的图形环境上下文的父类。
  • 布局管理类(layoutmanager):为了使我们生成的图形用户界面具有良好的平台无关性,Java语言中,提供了布局管理器这个工具来管理组件在容器中的布局,而不使用直接设置组件位置和大小的方式。为容器设置布局管理类时,可调用容器类中的setlayout()方法。
  • color类和font类

容器类组件

  • 容器分为顶层容器和非顶层容器。

  • 顶层容器可以独立的窗口,不需要其他组件支持。顶层容器的类是Windows,其重要子类是frame(框架)和dialog(对话框)

  • 非顶层容器不是独立的窗口,必须位于窗口之内,非顶层容器包括panel及scrollpanel等,panel的重要子类是applet类。

  • container类的特点是:容器类可以容纳其它组件,加入容器中后,组件的位置由布局管理器决定。

     package com.imau.gui;
    
  1. 导入包

  2. 创建组件对象

  3. 初始化

    import java.awt.*;
    import javax.swing.*;
    public class FrameDemo extends JFrame {
    public FrameDemo(){
    

1.设置标题 图标 大小 位置 可见性 窗口的事件

  this.setTitle("这是一个窗口");     
  this.setSize(300,300);     
  this.setLocation(400,300);     
  this.setVisible(true);    
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
   }     
   }   
  package com.imau.gui; public class Text {     
  public static void main(String[] args){     
  new FrameDemo();     
  }     
  } 

不用继承的方法(用对象形式创建窗体)

public void test(){    
JFrame frame=new JFrame();     
frame.setTitle("这是一个窗口");     
frame.setSize(300,300);     
frame.setLocation(400,300);    
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    }    
    }

标签:

  • 标签是很简单的一种组件,一般用来显示标识性的文本信息,常被放置于其他组件的旁边起提示作用。

  • AWT提供的标签类为Label,因此,可以通过创建Label对象来使用标签。

    private JLabel label;
    label=new JLabel("姓名");
    label.setHorizontalAlignment(JLabel.CENTER);
    label.setForeground(Color.BLUE);
    public FrameDemo(){
    init();
    this.add(label);
    

按钮

  • AWT提供的按钮类为Button,他是从Component类直接继承。

    private JButton button;
    private JButton bts[]=new JButton[10];
    for (int i=0;i<bts.length;++i){
    bts[i]=new JButton("按钮"+i);
    }
    public FrameDemo(){
    this.add(button);
    

布局管理器(LayoutManager):

  • 是用来安排容器中多个组件的位置及大小,以确保GUI中各组件能安排在适当合适的位置。
  • 每当需要重新调整屏幕大小或重新绘制屏幕上任一项目时,就要用到布局管理器。
  • AWT包提供一组用来进行布局管理的类,每个布局管理类对应一种布局策略。

Java中的布局类型包括:FlowLayout(流式布局),BorderLayout(边界布局),GridLayout(网格布局),CardLayout(卡片布局),BoxLayout(框布局),GridBagLayout(网格包布局)

如何设置布局
每个容器(container对象)都有一个与它相关的缺省的布局管理器。

  • Applet的缺省布局是FlowLayout,Frame的缺省布局是BorderLayout,Panel的缺省布局是FlowLayout。
  • 在没有设置新的布局前,在容器中添加组件都按照该容器的缺省布局排列。
  • 可以通过setLayout()方法为容器设置新的布局。

FlowLayout(组件从左上角开始从左到右,从上到下的方式排列)
FlowLayout的构造函数有:

  • FlowLayout():生成一个默认的流式布局。默认居中对齐。
  • FlowLayout(int alignment):可以设定每一行组件的对齐方式。
  • FlowLayout(int alignment,int horz,int vert):可以设定组件间的水平和垂直距离。

BorderLayout(窗口、框架和对话框等的缺省布局。组件可被置于容器的北、南、东、西或中间位置)

  • BoederLayout():生成默认的边界布局

  • BoederLayout(int horz,int vert):可以设定组件间的水平和垂直距离。

    setLayout(new BorderLayout());
    add(bts[0],BorderLayout.EAST);
    add(bts[1],BorderLayout.WEST);
    add(bts[2],BorderLayout.NORTH);
    add(bts[3],BorderLayout.SOUTH);
    add(bts[4],BorderLayout.CENTER);
    

GridLayout(组件按行和列排列)

  • GridLayout():生成一个单列的网格布局。

  • GridLayout(int row,int col):生成一个生成行数和列数的网格布局。

    setLayout(new GridLayout(4,4));
    for (int i=0;i<bts.length;++i){
    this.add(bts[i]);
    }
    

空布局:添加组件时,组件没有大小和位置,创建组件时给定大小和位置。

  public class FrameDemo extends JFrame {
  label=new JLabel("姓名");
  label.setSize(40,40);
  label.setLocation(10,10);
  }
  public FrameDemo(){
  init();
  setLayout(null);
  this.add(label);
  }

文本框

  • 文本框是图形界面中常用于接收用户输入或程序输出的一种组件,他只允许输入或显示单行的文本信息,且用户还可以限定文本框的宽度。

  • AWT提供的文本框类为TextFiled的,他直接继承于TextComponent,而TextComponent则从Component类继承而来。

    private JTextField field;
    field=new JTextField("aaaa");
    this.add(field);
    

获取屏幕大小设置在屏幕中央

  Dimension dim=getToolkit().getScreenSize();
  int w=dim.width/2;
  this.setSize(255,125);
  this.setLocation(w-255/2,h-125/2);
  int h=dim.height/2;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 记忆测试软件1.1. 设计内容1.2. 设计要求1.3. 总体设计1.4. 具体设计1.4.1. 运行效果与程序发布1.4.2. 主类Memory1.4.3. 方块 Block1.4.4. 记忆测试板MemoryTestPane1.4.5. 显示成绩 ShowRecord1.4.6. 记录成绩 Record1.4.7. 随机排列图标 RandomSetIcon1.4.8. 测试者 People1.5. 课程设计作业第2章 计算器2.1. 设计内容2.2. 设计要求2.3. 总体设计2.4. 具体设计2.4.1. 运行效果与程序发布2.4.2. 主类 ComputerPad2.4.3. 数值按钮NumberButton2.4.4. 运算符号按钮OperationButton2.5. 课程设计作业第3章 HANNOI-塔3.1. 设计内容3.2. 设计要求3.3. 总体设计3.4. 具体设计3.4.1. 运行效果与程序发布3.4.2. 主类 Tower3.4.3. Hannoi-塔 HannoiTower3.4.4. 塔点 TowerPoint3.4.5. 盘子 Disk3.5. 课程设计作业第4章 JPEG图象生成器4.1. 设计内容4.2. 设计要求4.3. 总体设计4.4. 具体设计4.4.1. 运行效果与程序发布4.4.2. 主类 MakeJPEG.java4.5. 课程设计作业第5章 标准化考试系统 (单机版)5.1. 设计内容5.2. 设计要求5.3. 总体设计5.4. 具体设计5.4.1. 运行效果与程序发布5.4.2. 主类EnglishTest5.4.3. 考试区域TestArea5.4.4. 读取试题 ReadTestquestion5.5. 课程设计作业第6章 标准化考试系统 (C/S网络版)6.1. 设计内容6.2. 设计要求6.3. 总体设计6.4. 具体设计6.4.1. 运行效果与程序发布6.4.2. 客户端主类Client6.4.3. 客户端选择试题界面ChoiceFile6.4.4. 客户端考试界面ClientTestArea6.4.5. 服务器端主类Server6.4.6. 服务器端读取试题 ReadTestquestion6.5. 课程设计作业第7章 标准化考试系统 (B/S网络版)7.1. 设计内容7.2. 设计要求7.3. 总体设计7.4. 具体设计7.4.1. 运行效果与程序发布7.4.2. 客户端主类ClientBS7.4.3. 客户端选择试题界面ChoiceFile7.4.4. 客户端考试界面ClientTestArea7.4.5. 服务器端主类Server7.4.6. 服务器端读取试题 ReadTestquestion7.5. 课程设计作业第8章 日历记事本8.1. 设计内容8.2. 设计要求8.3. 总体设计8.4. 具体设计8.4.1. 运行效果与程序发布8.4.2. 主类CalendarPad8.4.3. 记事本NotePad8.4.4. 年Year8.4.5. 月Month8.5. 课程设计作业18.6. 课程设计作业2第9章 学籍管理系统9.1. 设计内容9.2. 设计要求9.3. 总体设计9.4. 具体设计9.4.1. 运行效果与程序发布9.4.2. 主类StudentManager9.4.3. 录入界面StudentSituation9.4.4. 查询界面Inquest9.4.5. 修改界面ModifySituation9.4.6. 删除界面Delete9.4.7. 学生对象Student9.5. 课程设计作业第10章 图书查询系统 (B/S网络版)10.1. 设计内容10.2. 设计要求10.3. 总体设计10.4. 具体设计10.4.1. 运行效果与程序发布10.4.2. 客户端主类DatabaseClient10.4.3. 服务器端主类DatabaseServer10.5. 课程设计作业第11章 中国象棋打谱软件11.1. 设计内容11.2. 设计要求11.3. 总体设计11.4. 具体设计11.4.1. 运行效果与程序发布11.4.2. 主类 Chess11.4.3. 对弈棋盘ChessBoard11.4.4. 棋子ChessPiece11.4.5. 棋点 ChessPoint11.4.6. 走棋法则Rule11.4.7. 步骤MoveStep11.4.8. 记录棋谱MakeChessManual11.4.9. 棋谱演示Demon11.5. 课程设计作业111.6. 课程设计作业2第12章 魔板游戏12.1. 设计内容12.2. 设计要求12.3. 总体设计12.4. 具体设计12.4.1. 运行效果与程序发布12.4.2. 主类PuzzleFrame12.4.3. 魔板PuzzlePad12.4.4. 魔板中的点SquarePoint12.5. 课程设计作业第13章 挖雷游戏13.1. 设计内容13.2. 设计要求13.3. 总体设计13.4. 具体设计13.4.1. 运行效果与程序发布13.4.2. 主类Game13.4.3. 方块 Block13.4.4. 雷区 MineSquare13.4.5. 雷标数目 FindAroundMineMarkNumber13.4.6. 雷标判断 DetermineMineMarkIsRightOrWrong13.4.7. 成片挖开区域 DetermineDigArea13.4.8. 无雷连通区 FindSafeArea13.4.9. 随机布雷 RandomSetMine13.4.10. 周围地雷个数FindAroundMineNumber13.4.11. 显示剩余雷数CountMine13.4.12. 计时器TimeCount13.4.13. 英雄榜录入对话框Record13.4.14. 显示英雄榜对话框ShowRecord13.4.15. 挖雷成功DecideWinner13.5. 课程设计作业第14章 网络聊天室 (B/S模式)14.1. 设计内容14.2. 设计要求14.3. 总体设计14.4. 具体设计14.4.1. 运行效果与程序发布14.4.2. 客户端主类ClientChat14.4.3. 客户端输入妮称界面InputNameTextField14.4.4. 客户端聊天界面ChatArea14.4.5. 服务器端主类ChatServer14.5. 课程设计作业第15章 局域网络广播系统15.1. 设计内容15.2. 设计要求15.3. 总体设计15.4. 具体设计15.4.1. 运行效果与程序发布15.4.2. 客户端主类Receive15.4.3. 服务器端主类BroadCastWord15.5. 课程设计作业

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值