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. 试解析Tomcat运行原理(一)--- socket通讯

    关于这篇文章也确实筹划了很久,今天决定开篇写第一篇,说起tomcat首先很容易联想到IIS,因为我最开始使用的就是.net技术,我第一次使用asp写学生成绩管理系统后,很茫然如何让别人都能看到或者说使 ...

  2. iOS网络相关知识总结

    iOS网络相关知识总结 1.关于请求NSURLRequest? 我们经常讲的GET/POST/PUT等请求是指我们要向服务器发出的NSMutableURLRequest的类型; 我们可以设置Reque ...

  3. Magento后台简单更换favicon.ico

    刚才需要更换网站的favicon.ico,就是浏览器url前面的那个小图标. 网上稍微搜搜一下,然后就震惊了,号多方法是替换文件的方法,而且文件散步在网站的各个角落. 其实,后台是有直接上传更换的方法 ...

  4. Python之路----------生成器

    一.列表生成式 想想如何创建一个列表[0,1,2,3,4,5] l = [0,1,2,3,4,5] 如果上面的列表元素足够多的话,是不是会写很多代码?看看列表生成式怎么写 #列表生成式 l = [x ...

  5. VSO-Branch和Merge

    分支策略 一般采用一个MAIN分支,一个或多个DEVELOPMENT分支的分支结构,如下图(来自:https://msdn.microsoft.com/en-us/library/ee782536.a ...

  6. XPath、XQuery 以及 XSLT 函数

    存取函数 名称 说明 fn:node-name(node) 返回参数节点的节点名称. fn:nilled(node) 返回是否拒绝参数节点的布尔值. fn:data(item.item,...) 接受 ...

  7. Art-template模板

    1.介绍 新一代 javascript 模板引擎. 2.性能(引) 1.性能卓越,执行速度通常是 Mustache 与 tmpl 的 20 多倍(性能测试) 2.支持运行时调试,可精确定位异常模板所在 ...

  8. swift基础:第三部分:对第一部分的补充说明

    今天是我学习swift的第二天,虽然我和swift的距离有点远,但我相信,我会慢慢的接近这门语言的.好了,我们聊聊昨天晚上的事吧,昨天晚上下班早,回到家时,真是惊喜哈,宿舍那两做好了饭,等我吃饭,想对 ...

  9. c#制作一个屏幕保护程序

    代码已上传github 实现思路:纯黑窗体去边框,加入标签. 使用Timmer让windows 10标签运动.限制标签的行为. 代码: int deltX = 10;       int deltY ...

  10. 【原创】Android ExpandableListView使用

    ExpandableView的使用可以绑定到SimpleExpandableListAdapter,主要是看这个Adapter怎么用. 这个类默认的构造函数有9个参数, 很好地解释了什么叫做又臭又长. ...