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的部分常用功能和使用方法,包括:建库.克隆( ...
随机推荐
- 命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)
今天,在.net4.5,mvc4下新建了个区域,运行起来就报这个错误: 命名空间"System.Web"中不存在类型或命名空间名称"Optimization"( ...
- CORS浏览器跨域
在SO上发现一个解释跨域很棒的,忍不住拿过来 链接在此:http://stackoverflow.com/questions/10636611/how-does-access-control-allo ...
- iOS,几种设计模式
1.单例模式 2.观察者模式 3.委托代理 4.block回调 5.反射机制 单例模式 iOS单例模式的2种方式.根据线程安全的实现来区分,一种是使用@synchronized ,另一种是使用GCD的 ...
- ASP.NET corrupt assembly “Could not load file or assembly App_Web_*
以下是从overFlow 复制过来的问题 I've read through many of the other questions posted on the same issue, but I s ...
- 关于dll的一点收获
蒙贾神指点. 对于kernel32.dll这种系统dll, 每一个进程都会加载一份, 映射到自己的进程空间. 实际上物理内存上还是只有一份dll. 如果对进程自己的dll进行修改, 这时操作系统会触发 ...
- com.caucho.hessian.io.HessianProtocolException: is unknown code 解决方案
问题: Cannot access Hessian remote service at [http://....../remote/syllabusService]; nested exception ...
- 一些CSS
/*自定义*白烟*文本/边框/背景色*/ .text-whitesmoke,a.text-whitesmoke:link,a.text-whitesmoke:visited,.button.borde ...
- Buge's Fibonacci Number Problem
Buge's Fibonacci Number Problem Description snowingsea is having Buge’s discrete mathematics lesson, ...
- 当java出现异常,应如何进行处理
Java异常是一个描述在代码段中发生的异常(也就是出错)情况的对象.当异常情况发生,一个代表该异常的对象被创建并且在导致该错误的方法中被抛出(throw).该方法可以选择自己处理异常或传递该异常.两种 ...
- java加法流程图