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. 日志监控系统中,大批量查询mysql方案

    最近开发遇到一个问题:需要查询一个大时间段内的数据,分1000个小段,即为1000个点.X轴是时间,Y轴是该小时间段内统计后数据.注意:数据返回是一个list,其中每个对象返回值都是该小时间段内数据统 ...

  2. NSSet

    版权声明:本文为博主原创文章,未经博主允许不得转载. 一.NSSet的创建和初始化 创建一个空的NSSet集合:+ (void)set; 用数组来创建NSSet集合:+ (id)setWithArra ...

  3. 在 Apache Ant中设置Proxy服务器

    <target name="proxy"> <property name="proxy.host" value="https://m ...

  4. JSPatch打补丁

    http://www.cnblogs.com/dsxniubility/p/5080875.html http://www.jianshu.com/p/0cb81bf23d7a

  5. poj 2376 Cleaning Shifts

    http://poj.org/problem?id=2376 Cleaning Shifts Time Limit: 1000MS   Memory Limit: 65536K Total Submi ...

  6. 浅谈HTTPS和SSL/TLS协议的背景和基础

    相关背景知识要说清楚HTTPS协议的实现原理,至少要需要如下几个背景知识.大致了解几个基础术语(HTTPS.SSL.TLS)的含义大致了解HTTP和TCP的关系(尤其是"短连接"和 ...

  7. Markdown 是什么

    tags: Markdown tags && syngx ###Markdown 是什么Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber).它允许人 ...

  8. paper 116:自然图像抠图/视频抠像技术梳理(image matting, video matting)

    1. Bayesian Matting, Chuang, CVPR 2001.http://grail.cs.washington.edu/projects/digital-matting/paper ...

  9. vsftpd.conf

    引用:http://www.linuxidc.com/Linux/2012-08/67389.htm 研究嵌入式开发,开始使用的是Linux平台,用的是Ubuntu环境,但是发现Ubuntu的图形界面 ...

  10. win8.1中安装sql2014 0x800F0906 【 Error while enabling Windows feature : NetFx3, Error Code : -2146498298 】

    安装sql2012 需要安装net3.5  没有的话 安装不成功 Error while enabling Windows feature : NetFx3, Error Code : -214649 ...