GUI 下
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 下的更多相关文章
- 浮点与整形在GUI下的相关思考
平时不接触绘图,似乎感觉不到浮点和整形所带来的区别,这次项目中意外的碰到了浮点与整形进行迁移的工作.因此写点心得,让自己以后也可以看看. 用浮点作图有个最大的弊端就是边界情况,比如你需要在点(20,2 ...
- java gui 下拉框中项删除按钮
http://www.cnblogs.com/kangls/archive/2013/03/21/2972943.html http://m.blog.csdn.net/blog/ycb1689/74 ...
- [荐][转]为何应该使用 MacOS X(论GUI环境下开发人员对软件的配置与重用)
一周前我和 Tinyfool 闲聊苹果操作系统,都认为对于开发人员来说,苹果操作系统(MacOS)是上佳的选择.Tinyfool 笔头很快,当即就写了一篇长文章,我则笔头很慢,今天才全部码好.他的文章 ...
- Linux下设置网卡随系统启动
在GUI下安装RHEL,在配置网卡的时候,有时候会忘了勾选网卡随系统自动启动,解决方法是系统启动后,打开网卡配置文件/etc/sysconfig/network-script/ifcfg-eth*,将 ...
- Unity GUI内绘制贝塞尔曲线
用Handles可以直接在GUI下绘制贝塞尔 using UnityEditor; using UnityEngine; using System.Collections; public class ...
- Linux下vi编辑器粘贴复制剪切功能
RedHat 9.0 Linux下vi编辑器实现简单的粘贴复制剪切功能": 如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到 ...
- Git操作指南(2) —— Git Gui for Windows的建库、克隆、上传
本教程将讲述:gitk的Git Gui的部分常用功能和使用方法,包括:建库.克隆(clone).上传(push).下载(pull - fetch).合并(pull - merge). ———————— ...
- Git操作指南(2) —— Git Gui for Windows的建库、克隆(clone)、上传(push)、下载(pull)、合并(转)
关于linux上建库等操作请看文章: http://hi.baidu.com/mvp_xuan/blog/item/30f5b700a832f0261d9583ad.html http://hi.ba ...
- (转)Git Gui for Windows的建库、克隆(clone)、上传(push)、下载(pull)、合并
原文地址: http://blog.csdn.net/fym0512/article/details/7713006 本教程将讲述:gitk的Git Gui的部分常用功能和使用方法,包括:建库.克隆( ...
随机推荐
- 打造Linux三流娱乐环境,二流办公环境,一流Java开发环境
写这篇文章的目的首先是为让自己以后再装linux环境时候,不用再通宵google+百度,做个备忘录,其次,给新入Linux环境的同学分享一点个人经验,再高尚点的动机也算是想做为开源技术的传播布道者.我 ...
- mysql 命令行操作1
查看版本号 :SELECT @@version;或者status; 1.设置数据库系统的事务隔离级别 mysql> set global transaction isolation level ...
- [原创]LoadRunner 12.02 录制脚本时提示无Internet访问,如何解决?
在使用LoadRunner 12.02 进行录制脚本时提示无Internet访问,如下图: 翻译中文如下: 可以尝试以下方式解决:点击弹出框中的“Yes”即可. 若还是有问题,尝试以下方式: (1)L ...
- 正则表达式/g与/i及/gi的意义
g: 全局匹配 i: 忽略大小写 gi: 全局匹配 + 忽略大小写
- TP框架常用配置
<?php// +----------------------------------------------------------------------// | ThinkPHP [ WE ...
- 终于解决各种动画问题了,感谢雨松MOMO
http://www.xuanyusong.com/archives/2222 看懂了,什么问题关于动画的都可以解决的,加油!
- 19.在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?)写出http常见的状态码和含义,至少5个.[完善题目]
状态401代表未被授权,header("Location:www.xxx.php"); 100-199 用于指定客户端应相应的某些动作. 200-299 用于表示请求成功. 300 ...
- Java总结——文件&流
最近学习了Java的输入输出,脑子里有两点乱,不过比之前的思路好像清晰了很多.脑子刚刚接收这些信息的时候,整个就是懵逼的,又是文件又是流的,文件到底干嘛的,流到底干嘛的?恩,后来,想了想,其实也不难理 ...
- 利用lambda和Collection.forEach
2.外部VS内部迭代 以前Java集合是不能够表达内部迭代的,而只提供了一种外部迭代的方式,也就是for或者while循环. 1 2 3 4 List persons = asList(new Per ...
- String空值判定
不能用 str.equalsIgnoreCase(null). 写了个判定的方法,供以后直接调用: public static boolean isEmpty(String str) { if (st ...