11.6 Swing组件

JButton JLabel JTextField JTextArea JTable JTree

publicclass JTableDemo extends JFrame

{

      publicstaticvoid main(String[] args)

      {

           JTableDemo jTableDemo = new JTableDemo();

           jTableDemo.setVisible(true);

      }

      public JTableDemo()

      {

           setSize(300, 300);

           setLocation(400, 400);

           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

           setLayout(new BorderLayout());

           JTable table = new JTable(new AbstractTableModel()

           {

                 privatestaticfinallongserialVersionUID = 1L;

                 private String columnName[] =

                 { "第一列", "第二列", "第三列", "第四列" };

                 // 返回列的大小

                 @Override

                 publicint getColumnCount()

                 {

                      return 4;

                 }

                 // 返回列名

                 @Override

                 public String getColumnName(intcolumn)

                 {

                      returnthis.columnName[column];

                 }

                 // 返回行的大小

                 @Override

                 publicint getRowCount()

                 {

                      return 4;

                 }

                 public Object getValueAt(introw, intcol)

                 {

                      returnnew Integer(row * col);

                 }

           });

           // 为了防止表格过长,使用JScrollPane,使得表格具有滚动条

           JScrollPane scrollPane = new JScrollPane(table);

           add(scrollPane, BorderLayout.CENTER);

      }}

11.7 图形编程

11.7.1 AWT图形API

Graphics 类是从JDK1.0开始就在AWT中提供的图形绘制类.由于Swing是基于AWT发展起来的组件,Graphics类作为一种图形绘制方式得到了保留

drawLine

绘制直线

DrawOval

fillOval

绘制椭圆

填充椭圆

DrawPolygon

FillPolygon

绘制多边形

填充多边形

drawRect

fillRect

绘制矩形

填充矩形

drawRoundRect

fillRoundRect

绘制圆角矩阵

填充圆角矩阵

drawstring

绘制字符串

Draw3DRect

Fill3DRect

绘制带3D效果的矩形

填充带3D效果的矩形

drawImage

绘制图片

SetColor

设置画笔颜色

SetFont

设置字体

publicclass GraphicsDemo extends JFrame

{

      publicstaticvoid main(String[] args)

      {

           GraphicsDemo graphicsDemo = new GraphicsDemo();

           graphicsDemo.setVisible(true);

      }

      public GraphicsDemo()

      {

           setSize(400, 400);

           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      }

      @Override

      publicvoid paint(Graphics g)

      {

           super.paint(g);

           // 设置画笔颜色为红色

      g.setColor(Color.red);

           // 绘制矩形

           g.drawRect(50, 50, 100, 100);

           // 填充矩形

           g.fillRect(200, 50, 100, 100);

           // 设置画笔颜色为绿色

           g.setColor(Color.green);

           // 绘制圆形

           g.drawOval(50, 200, 100, 100);

           // 填充圆形

           g.fillOval(200, 200, 100, 100);

      }}

11.7.2 Java2D 图形API

 Java2D JFC的一员,加强了传统的AWT的描绘功能.

      绘制五角形代码如下

      publicclass Graphics2DDemo extends JFrame

{

      publicstaticvoid main(String[] args)

      {

           Graphics2DDemo myFrame = new Graphics2DDemo();

           myFrame.setVisible(true);

      }

      public Graphics2DDemo()

      {

           setSize(400, 400);

           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      }

      @Override

      publicvoid paint(Graphics g)

      {

           super.paint(g);

           Graphics2D g2 = (Graphics2D) g;

           // 设置画笔样式

           g2.setStroke(new BasicStroke(4.0f));

           // 用GeneralPath 构造一个五角形

           GeneralPath p = new GeneralPath(GeneralPath.WIND_NON_ZERO);

           p.moveTo(-100.0f, -25.0f);

           p.lineTo(+100.0f, -25.0f);

           p.lineTo(-50.0f, +100.0f);

           p.lineTo(+0.0f, -100.0f);

           p.lineTo(+50.0f, +100.0f);

           p.closePath();

           // 将坐标平移到(200,200)

           g2.translate(200.0f, 200.0f);

           g2.draw(p);

      }}

11.8 加载和使用多媒体资源

11.8.1 加载图像

      现在我使用一种基于ImageIO的图像加载和使用方法.ImageIo中关于图像加载的方法主要有以下的方法

      BufferedImage read(File input)

      BufferedImage read(ImageInputStream stream)

BufferedImage read(InputStream input)

BufferedImage read(URL input)

GUI 下的更多相关文章

  1. 浮点与整形在GUI下的相关思考

    平时不接触绘图,似乎感觉不到浮点和整形所带来的区别,这次项目中意外的碰到了浮点与整形进行迁移的工作.因此写点心得,让自己以后也可以看看. 用浮点作图有个最大的弊端就是边界情况,比如你需要在点(20,2 ...

  2. java gui 下拉框中项删除按钮

    http://www.cnblogs.com/kangls/archive/2013/03/21/2972943.html http://m.blog.csdn.net/blog/ycb1689/74 ...

  3. [荐][转]为何应该使用 MacOS X(论GUI环境下开发人员对软件的配置与重用)

    一周前我和 Tinyfool 闲聊苹果操作系统,都认为对于开发人员来说,苹果操作系统(MacOS)是上佳的选择.Tinyfool 笔头很快,当即就写了一篇长文章,我则笔头很慢,今天才全部码好.他的文章 ...

  4. Linux下设置网卡随系统启动

    在GUI下安装RHEL,在配置网卡的时候,有时候会忘了勾选网卡随系统自动启动,解决方法是系统启动后,打开网卡配置文件/etc/sysconfig/network-script/ifcfg-eth*,将 ...

  5. Unity GUI内绘制贝塞尔曲线

    用Handles可以直接在GUI下绘制贝塞尔 using UnityEditor; using UnityEngine; using System.Collections; public class ...

  6. Linux下vi编辑器粘贴复制剪切功能

    RedHat 9.0 Linux下vi编辑器实现简单的粘贴复制剪切功能": 如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到 ...

  7. Git操作指南(2) —— Git Gui for Windows的建库、克隆、上传

    本教程将讲述:gitk的Git Gui的部分常用功能和使用方法,包括:建库.克隆(clone).上传(push).下载(pull - fetch).合并(pull - merge). ———————— ...

  8. Git操作指南(2) —— Git Gui for Windows的建库、克隆(clone)、上传(push)、下载(pull)、合并(转)

    关于linux上建库等操作请看文章: http://hi.baidu.com/mvp_xuan/blog/item/30f5b700a832f0261d9583ad.html http://hi.ba ...

  9. (转)Git Gui for Windows的建库、克隆(clone)、上传(push)、下载(pull)、合并

    原文地址: http://blog.csdn.net/fym0512/article/details/7713006 本教程将讲述:gitk的Git Gui的部分常用功能和使用方法,包括:建库.克隆( ...

随机推荐

  1. Python开发程序:选课系统-改良版

    程序名称: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. ...

  2. linux系统中如何查看日志(转)

    cat tail -f 日 志 文 件 说    明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安 ...

  3. ISO8583报文协议

    最开始时,金融系统只有IBM这些大的公司来提供设备,象各种主机与终端等.在各个计算机设备之间,需要交换数据.我们知道数据是通过网络来传送的,而在网络上传送的数据都是基于0或1这样的二进制数据,如果没有 ...

  4. jsp页面常用控件

    1.点击按钮返回 上一页: <input type="submit" value="返回" onclick="javascript :histo ...

  5. GCD的简单用法

    /* 创建一个队列用来执行任务,TA属于系统预定义的并行队列即全局队列,目前系统预定义了四个不同运行优先级的全局队列,我们可以通过dispatch_get_global_queue来获取它们 四种优先 ...

  6. Python之路-(js正则表达式、前端页面的模板套用、Django基础)

    js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  7. IE8文件下载启用

    在IE8的浏览器中,需要进行一些设置 Internet选项→安全→本地Intranet→自定义级别→下载→文件下载→启用 禁用迅雷下载:工具栏和扩展→迅雷下载支持→右键禁用

  8. MVC中的数据注解和验证

    数据注解和验证 用户输入验证在客户端浏览器中需要执行验证逻辑. 在客户端也需要执行. 注解是一种通用机制, 可以用来向框架注入元数据, 同时, 框架不只驱动元数据的验证, 还可以在生成显示和编辑模型的 ...

  9. Excel Note

    公式的引用分为相对引用.绝对引用和混合引用.如果要使公式中的引用随着公式的下拉改变就用相对引用.如=sum(A2:D20),这个公式下拉时引用的单元格就会随着变化.如果要使公式中的引用下拉时不会改变就 ...

  10. Java程序猿学习的建议(转)

    第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学. 一.Java基础 首先去找一个Java的基础教程学一下,这里可以推荐一个地址,或者你也可以参照这个地址上去找相应 ...