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的部分常用功能和使用方法,包括:建库.克隆( ...
随机推荐
- android中如何获取xml界面里的非自定义属性
获取自定义属性大家都很熟悉了,就不多说了(定义declare-styleable,context.obtainStyledAttributes巴拉巴拉...) 下面我们说一下怎么获取非自定义的属性,比 ...
- ferret不能创建txt文本--cookiecadger截获不到包
终于解决了-- 虽然是通宵 又是隔了一天 .但还是解决了. 要/proc/sys/net/ipv4/ip_forward =1 echo 1 > /proc/sys/net/ipv4/ip_ ...
- spring4 离线doc和api(自制)
spring mvc api 文档(英文版) 链接: https://pan.baidu.com/s/1c25Ml4 密码: ufb9 spring MVC 学习文档(英文版) 链接: https:/ ...
- 目标检测方法——SSD
SSD论文阅读(Wei Liu--[ECCV2016]SSD Single Shot MultiBox Detector) 目录 作者及相关链接 文章的选择原因 方法概括 方法细节 相关背景补充 实验 ...
- Given a code_combination_id how can i get the code description? 获取科目组合描述
SELECT c.code_combination_id, c.concatenated_segments, apps.fa_rx_flex_pkg.get_description(101 -- p_ ...
- 图像开发的p2s模式:halcon+opencv的联动
[<zw版·Halcon与delphi系列原创教程> 图像开发的p2s模式:halcon+opencv的联动 尽管halcon功能强大,基本上cv只是halcon的一个子集,不过cv毕竟是 ...
- LA 4329 Ping pong 树状数组
对于我这样一名脑残ACMer选手,这道题看了好久好久大概4天,终于知道怎样把它和“树状数组”联系到一块了. 树状数组是什么意思呢?用十个字归纳它:心里有数组,手中有前缀. 为什么要用树状数组?假设你要 ...
- zmap在阿里云主机上的编译
环境: cat /etc/issueUbuntu 14.04.2 LTS \n \l cat /proc/cpuinfoprocessor : 0vendor_id : GenuineIntelcpu ...
- Windows Azure Storage 之 Retry Policy (用来处理短暂性错误-Transient Fault)
在使用Windows Azure Storage Service 的时候, 通常会遇到各种各样的问题. 例如网络连接不稳定,导致请求没有发出去.删除一个Blob Container 之后又立刻创建同名 ...
- logstash输出到influxdb
用了这个logstash扩展 https://github.com/PeterPaulH/logstash-influxdb/blob/master/src/influxdb.rb 把这个文件放到 l ...