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的部分常用功能和使用方法,包括:建库.克隆( ...
随机推荐
- 试解析Tomcat运行原理(一)--- socket通讯
关于这篇文章也确实筹划了很久,今天决定开篇写第一篇,说起tomcat首先很容易联想到IIS,因为我最开始使用的就是.net技术,我第一次使用asp写学生成绩管理系统后,很茫然如何让别人都能看到或者说使 ...
- iOS网络相关知识总结
iOS网络相关知识总结 1.关于请求NSURLRequest? 我们经常讲的GET/POST/PUT等请求是指我们要向服务器发出的NSMutableURLRequest的类型; 我们可以设置Reque ...
- Magento后台简单更换favicon.ico
刚才需要更换网站的favicon.ico,就是浏览器url前面的那个小图标. 网上稍微搜搜一下,然后就震惊了,号多方法是替换文件的方法,而且文件散步在网站的各个角落. 其实,后台是有直接上传更换的方法 ...
- Python之路----------生成器
一.列表生成式 想想如何创建一个列表[0,1,2,3,4,5] l = [0,1,2,3,4,5] 如果上面的列表元素足够多的话,是不是会写很多代码?看看列表生成式怎么写 #列表生成式 l = [x ...
- VSO-Branch和Merge
分支策略 一般采用一个MAIN分支,一个或多个DEVELOPMENT分支的分支结构,如下图(来自:https://msdn.microsoft.com/en-us/library/ee782536.a ...
- XPath、XQuery 以及 XSLT 函数
存取函数 名称 说明 fn:node-name(node) 返回参数节点的节点名称. fn:nilled(node) 返回是否拒绝参数节点的布尔值. fn:data(item.item,...) 接受 ...
- Art-template模板
1.介绍 新一代 javascript 模板引擎. 2.性能(引) 1.性能卓越,执行速度通常是 Mustache 与 tmpl 的 20 多倍(性能测试) 2.支持运行时调试,可精确定位异常模板所在 ...
- swift基础:第三部分:对第一部分的补充说明
今天是我学习swift的第二天,虽然我和swift的距离有点远,但我相信,我会慢慢的接近这门语言的.好了,我们聊聊昨天晚上的事吧,昨天晚上下班早,回到家时,真是惊喜哈,宿舍那两做好了饭,等我吃饭,想对 ...
- c#制作一个屏幕保护程序
代码已上传github 实现思路:纯黑窗体去边框,加入标签. 使用Timmer让windows 10标签运动.限制标签的行为. 代码: int deltX = 10; int deltY ...
- 【原创】Android ExpandableListView使用
ExpandableView的使用可以绑定到SimpleExpandableListAdapter,主要是看这个Adapter怎么用. 这个类默认的构造函数有9个参数, 很好地解释了什么叫做又臭又长. ...