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. 打造Linux三流娱乐环境,二流办公环境,一流Java开发环境

    写这篇文章的目的首先是为让自己以后再装linux环境时候,不用再通宵google+百度,做个备忘录,其次,给新入Linux环境的同学分享一点个人经验,再高尚点的动机也算是想做为开源技术的传播布道者.我 ...

  2. mysql 命令行操作1

    查看版本号 :SELECT @@version;或者status; 1.设置数据库系统的事务隔离级别 mysql> set global transaction isolation level ...

  3. [原创]LoadRunner 12.02 录制脚本时提示无Internet访问,如何解决?

    在使用LoadRunner 12.02 进行录制脚本时提示无Internet访问,如下图: 翻译中文如下: 可以尝试以下方式解决:点击弹出框中的“Yes”即可. 若还是有问题,尝试以下方式: (1)L ...

  4. 正则表达式/g与/i及/gi的意义

    g: 全局匹配 i: 忽略大小写 gi: 全局匹配 + 忽略大小写

  5. TP框架常用配置

    <?php// +----------------------------------------------------------------------// | ThinkPHP [ WE ...

  6. 终于解决各种动画问题了,感谢雨松MOMO

    http://www.xuanyusong.com/archives/2222 看懂了,什么问题关于动画的都可以解决的,加油!

  7. 19.在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?)写出http常见的状态码和含义,至少5个.[完善题目]

    状态401代表未被授权,header("Location:www.xxx.php"); 100-199 用于指定客户端应相应的某些动作. 200-299 用于表示请求成功. 300 ...

  8. Java总结——文件&流

    最近学习了Java的输入输出,脑子里有两点乱,不过比之前的思路好像清晰了很多.脑子刚刚接收这些信息的时候,整个就是懵逼的,又是文件又是流的,文件到底干嘛的,流到底干嘛的?恩,后来,想了想,其实也不难理 ...

  9. 利用lambda和Collection.forEach

    2.外部VS内部迭代 以前Java集合是不能够表达内部迭代的,而只提供了一种外部迭代的方式,也就是for或者while循环. 1 2 3 4 List persons = asList(new Per ...

  10. String空值判定

    不能用 str.equalsIgnoreCase(null). 写了个判定的方法,供以后直接调用: public static boolean isEmpty(String str) { if (st ...