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的部分常用功能和使用方法,包括:建库.克隆( ...
随机推荐
- JsonProperties对模型返回的应用
在采用springMvc+Mybatis的架构中.数据库已经建好,数据库和需要返回的实体共用一个model.一切都井然有序,看起来很美好. 返回的代码都如下这样 @RequestMapping(&qu ...
- ASP.NET MVC 4 视图页去哪里儿
这里特别感谢 swagon 提到了Displaymodeprovider,所以才有了本篇博客,也使我对[View的呈现]中寻找视图页的过程有了清晰的认识! 前戏 在MVC中,执行完Action之后,会 ...
- 监控redis python脚本
#!/bin/env python #-*- coding:utf- -*- import json import time import socket import os import re imp ...
- with CTE AS
CTE/表变量/Temp http://www.cnblogs.com/ziyeyimeng/articles/2366855.html
- Android 自定义view (一)——attr 理解
前言: 自定义view是android自定义控件的核心之一,那么在学习自定义view之前,我们先来了解下自定义view的自定义属性的attr的用法吧 Android attr 是什么 (1)attr ...
- 总结Android中遇见的OOM
一 .Android应用中内存泄漏几种的原因: 1.单例模式导致的内存泄漏: 当调用getInstance时,如果传入的context是Activity的context.只要这个单例没有被释放,这个A ...
- win8.1中安装sql2014 0x800F0906 【 Error while enabling Windows feature : NetFx3, Error Code : -2146498298 】
安装sql2012 需要安装net3.5 没有的话 安装不成功 Error while enabling Windows feature : NetFx3, Error Code : -214649 ...
- js基础练习三之数码时钟
这章节有两个实例,1,定时器的使用; 2,数码时钟; 用到的js知识:定时器,Date对象. >>>>>定时器 开启定时器: setInterval 间隔型 setTim ...
- 如何申请国际版Office365和Azure的试用账号
关键字:国际版.Office365.Azure.试用账号.1美元.信用卡 待续
- python生成器实现杨辉三角
def triangels(): """ 杨辉三角 """ lst = [1] n_count = 2 # 下一行列表长度 while Tr ...