- 浏览: 722963 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
一剪梅:
关于您对于 hasRolePermission 用法的解释, ...
OFBIZ安全性技术(翻译) -
沈寅麟:
数据模型资源手册卷3中文版出版了 -
donaldjohn:
恭喜恭喜, 预祝大卖
数据模型资源手册卷3中文版出版了 -
成大大的:
OFBiz电商实战百度网盘下载:http://pan.baid ...
OFBiz入门实训教程 -
成大大的:
OFBiz电商实战百度网盘下载:http://pan.baid ...
OFBiz促销码生成解释
一个awt做的模拟时钟的例子(代码来源Java2程序设计150例)
很简单,应该很容易看懂,
第二个例子在第一例子的基础上进行了小修改在swt上运行awt,swing。
java 代码
很简单,应该很容易看懂,
第二个例子在第一例子的基础上进行了小修改在swt上运行awt,swing。
java 代码
- import java.awt.*;
- import java.awt.event.*;
- import java.awt.geom.*;
- import java.util.Calendar;
- import javax.swing.*;
- public class Clock extends JPanel implements ActionListener
- {
- // 创建时钟的外形
- protected static Ellipse2D face = new Ellipse2D.Float(3, 3, 94, 94);
- // 创建时钟的标记
- protected static GeneralPath tick = new GeneralPath();
- static
- {
- tick.moveTo(100, 100);
- tick.moveTo(49, 0);
- tick.lineTo(51, 0);
- tick.lineTo(51, 6);
- tick.lineTo(49, 6);
- tick.lineTo(49, 0);
- }
- // 创建时针
- protected static GeneralPath hourHand = new GeneralPath();
- static
- {
- hourHand.moveTo(50, 15);
- hourHand.lineTo(53, 50);
- hourHand.lineTo(50, 53);
- hourHand.lineTo(47, 50);
- hourHand.lineTo(50, 15);
- }
- // 创建分针
- protected static GeneralPath minuteHand = new GeneralPath();
- static
- {
- minuteHand.moveTo(50, 2);
- minuteHand.lineTo(53, 50);
- minuteHand.lineTo(50, 58);
- minuteHand.lineTo(47, 50);
- minuteHand.lineTo(50, 2);
- }
- // 创建秒针
- protected static GeneralPath secondHand = new GeneralPath();
- static
- {
- secondHand.moveTo(49, 5);
- secondHand.lineTo(51, 5);
- secondHand.lineTo(51, 62);
- secondHand.lineTo(49, 62);
- secondHand.lineTo(49, 5);
- }
- // 设置时钟的颜色
- protected static Color faceColor = new Color(220, 220, 220);
- protected static Color hourColor = Color.red.darker();
- protected static Color minuteColor = Color.blue.darker();
- protected static Color secondColor = new Color(180, 180, 0);
- protected static Color pinColor = Color.gray.brighter();
- // 创建时钟的枢纽
- protected Ellipse2D pivot = new Ellipse2D.Float(47, 47, 6, 6);
- protected Ellipse2D centerPin = new Ellipse2D.Float(49, 49, 2, 2);
- // 创建绕时钟枢纽转的变换
- protected AffineTransform hourTransform =
- AffineTransform.getRotateInstance(0, 50, 50);
- protected AffineTransform minuteTransform =
- AffineTransform.getRotateInstance(0, 50, 50);
- protected AffineTransform secondTransform =
- AffineTransform.getRotateInstance(0, 50, 50);
- // 创建每秒触发一次的Timer
- protected Timer timer = new Timer(1000, this);
- protected Calendar calendar = Calendar.getInstance();
- public Clock()
- {
- setPreferredSize(new Dimension(100, 100));
- }
- // 当plane加入container中时发生
- public void addNotify()
- {
- super.addNotify();
- timer.start();
- }
- // 当plane从container中移处时发生
- public void removeNotify()
- {
- timer.stop();
- super.removeNotify();
- }
- public void actionPerformed(ActionEvent event)
- {
- // 更新calender的时间
- this.calendar.setTime(new java.util.Date());
- int hours = this.calendar.get(Calendar.HOUR);
- int minutes = this.calendar.get(Calendar.MINUTE);
- int seconds = this.calendar.get(Calendar.SECOND);
- //设置变换,使得时针、分针、秒针各自按绕枢纽旋转一定的角度
- hourTransform.setToRotation(((double) hours) *
- (Math.PI / 6.0), 50, 50);
- minuteTransform.setToRotation(((double) minutes) *
- (Math.PI / 30.0), 50, 50);
- secondTransform.setToRotation(((double) seconds) *
- (Math.PI / 30.0), 50, 50);
- repaint();
- }
- public void paint(Graphics g)
- {
- super.paint(g);
- // 得到图形上下文和抗锯齿处理
- Graphics2D g2 = (Graphics2D) g;
- g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_ON);
- g2.setPaint(faceColor);
- g2.fill(face);
- g2.setPaint(Color.black);
- g2.draw(face);
- // 产生钟面上12个滴答位置
- for (double p = 0.0; p < 12.0; p += 1.0)
- {
- //利用变换画出同心的滴答的标线
- g2.fill(tick.createTransformedShape(
- AffineTransform.getRotateInstance((Math.PI / 6.0) * p,
- 50, 50)));
- }
- g2.setPaint(hourColor);
- g2.fill(hourHand.createTransformedShape(hourTransform));
- g2.setPaint(minuteColor);
- g2.fill(minuteHand.createTransformedShape(minuteTransform));
- g2.setPaint(secondColor);
- g2.fill(secondHand.createTransformedShape(secondTransform));
- g2.fill(pivot);
- g2.setPaint(pinColor);
- g2.fill(centerPin);
- }
- public static void main(String[] args)
- {
- JFrame frame = new JFrame();
- frame.setLocation(700, 400);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.getContentPane().add(new Clock());
- frame.pack();
- frame.show();
- }
- }
我把例子做了一些修改让他在swt的基础上运行。
java 代码
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.RenderingHints;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.geom.AffineTransform;
- import java.awt.geom.Ellipse2D;
- import java.awt.geom.GeneralPath;
- import java.util.Calendar;
- import javax.swing.JPanel;
- import javax.swing.Timer;
- import org.eclipse.swt.SWT;
- import org.eclipse.swt.awt.SWT_AWT;
- import org.eclipse.swt.layout.FillLayout;
- import org.eclipse.swt.widgets.Composite;
- import org.eclipse.swt.widgets.Display;
- import org.eclipse.swt.widgets.Shell;
- public class Swt_awtClock extends JPanel implements ActionListener{
- // 创建时钟的外形
- protected static Ellipse2D face = new Ellipse2D.Float(3, 3, 94, 94);
- // 创建时钟的标记
- protected static GeneralPath tick = new GeneralPath();
- static
- {
- tick.moveTo(100, 100);
- tick.moveTo(49, 0);
- tick.lineTo(51, 0);
- tick.lineTo(51, 6);
- tick.lineTo(49, 6);
- tick.lineTo(49, 0);
- }
- // 创建时针
- protected static GeneralPath hourHand = new GeneralPath();
- static
- {
- hourHand.moveTo(50, 15);
- hourHand.lineTo(53, 50);
- hourHand.lineTo(50, 53);
- hourHand.lineTo(47, 50);
- hourHand.lineTo(50, 15);
- }
- // 创建分针
- protected static GeneralPath minuteHand = new GeneralPath();
- static
- {
- minuteHand.moveTo(50, 2);
- minuteHand.lineTo(53, 50);
- minuteHand.lineTo(50, 58);
- minuteHand.lineTo(47, 50);
- minuteHand.lineTo(50, 2);
- }
- // 创建秒针
- protected static GeneralPath secondHand = new GeneralPath();
- static
- {
- secondHand.moveTo(49, 5);
- secondHand.lineTo(51, 5);
- secondHand.lineTo(51, 62);
- secondHand.lineTo(49, 62);
- secondHand.lineTo(49, 5);
- }
- // 设置时钟的颜色
- protected static Color faceColor = new Color(220, 220, 220);
- protected static Color hourColor = Color.red.darker();
- protected static Color minuteColor = Color.blue.darker();
- protected static Color secondColor = new Color(180, 180, 0);
- protected static Color pinColor = Color.gray.brighter();
- // 创建时钟的枢纽
- protected Ellipse2D pivot = new Ellipse2D.Float(47, 47, 6, 6);
- protected Ellipse2D centerPin = new Ellipse2D.Float(49, 49, 2, 2);
- // 创建绕时钟枢纽转的变换
- protected AffineTransform hourTransform =
- AffineTransform.getRotateInstance(0, 50, 50);
- protected AffineTransform minuteTransform =
- AffineTransform.getRotateInstance(0, 50, 50);
- protected AffineTransform secondTransform =
- AffineTransform.getRotateInstance(0, 50, 50);
- // 创建每秒触发一次的Timer
- protected Timer timer = new Timer(1000, this);
- protected Calendar calendar = Calendar.getInstance();
- public Swt_awtClock()
- {
- setPreferredSize(new Dimension(100, 100));
- }
- // 当plane加入container中时发生
- public void addNotify()
- {
- super.addNotify();
- timer.start();
- }
- // 当plane从container中移处时发生
- public void removeNotify()
- {
- timer.stop();
- super.removeNotify();
- }
- public void actionPerformed(ActionEvent event)
- {
- // 更新calender的时间
- this.calendar.setTime(new java.util.Date());
- int hours = this.calendar.get(Calendar.HOUR);
- int minutes = this.calendar.get(Calendar.MINUTE);
- int seconds = this.calendar.get(Calendar.SECOND);
- //设置变换,使得时针、分针、秒针各自按绕枢纽旋转一定的角度
- hourTransform.setToRotation(((double) hours) *
- (Math.PI / 6.0), 50, 50);
- minuteTransform.setToRotation(((double) minutes) *
- (Math.PI / 30.0), 50, 50);
- secondTransform.setToRotation(((double) seconds) *
- (Math.PI / 30.0), 50, 50);
- repaint();
- }
- public void paint(Graphics g)
- {
- super.paint(g);
- // 得到图形上下文和抗锯齿处理
- Graphics2D g2 = (Graphics2D) g;
- g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_ON);
- g2.setPaint(faceColor);
- g2.fill(face);
- g2.setPaint(Color.black);
- g2.draw(face);
- // 产生钟面上12个滴答位置
- for (double p = 0.0; p < 12.0; p += 1.0)
- {
- //利用变换画出同心的滴答的标线
- g2.fill(tick.createTransformedShape(
- AffineTransform.getRotateInstance((Math.PI / 6.0) * p,
- 50, 50)));
- }
- g2.setPaint(hourColor);
- g2.fill(hourHand.createTransformedShape(hourTransform));
- g2.setPaint(minuteColor);
- g2.fill(minuteHand.createTransformedShape(minuteTransform));
- g2.setPaint(secondColor);
- g2.fill(secondHand.createTransformedShape(secondTransform));
- g2.fill(pivot);
- g2.setPaint(pinColor);
- g2.fill(centerPin);
- }
- public static void main(String[] args) {
- final Display display = new Display( );
- final Shell shell = new Shell(display);
- shell.setText("Using Swing and AWT in Swt");
- shell.setSize(135, 145);
- shell.setLayout(new FillLayout());
- Composite composite = new Composite(shell, SWT.EMBEDDED);
- java.awt.Frame frame = SWT_AWT.new_Frame(composite);
- frame.setLocation(700, 400);
- // frame.getContentPane().add(new Swt_awtClock());
- java.awt.Panel panel = new java.awt.Panel( );
- frame.add(panel);
- panel.add(new Swt_awtClock());
- frame.pack();
- frame.show();
- shell.open( );
- while(!shell.isDisposed( )) {
- if (!display.readAndDispatch( )) display.sleep( );
- }
- display.dispose( );
- }
- }
评论
1 楼
rEloaD_cn
2008-01-11
恩,关键就只有两行代码:
# Composite composite = new Composite(shell, SWT.EMBEDDED);
#
# java.awt.Frame frame = SWT_AWT.new_Frame(composite);
# Composite composite = new Composite(shell, SWT.EMBEDDED);
#
# java.awt.Frame frame = SWT_AWT.new_Frame(composite);
发表评论
-
OFC界面控件最佳实践
2014-11-08 16:35 12571 不解释。水平不够就 ... -
Tomcat内存溢出的原因
2014-09-27 23:11 935http://blogread.cn/it/article/6 ... -
开源的魔兽世界
2010-08-18 09:59 2043http://hi.baidu.com/sempiternal ... -
网站们
2010-08-18 09:58 852http://mmorpg.ragezone.com/ 一个 ... -
testSQLServer连接
2007-10-20 11:50 1517xml 代码 <%@ page cont ... -
PasswordDemo
2007-10-16 00:11 1274博客上的文章太少了, ... -
qq聊天
2007-10-10 23:42 2078java 代码 import ja ... -
扫描端口
2007-10-10 23:37 1363扫描端口 import java.net.*; ... -
MacAddressAccess
2007-10-10 23:17 1381记录下来,省得下次使用时还得查找。 impo ... -
WebBrowser
2007-09-25 22:29 1868swing做的web浏览器,应该不会有插件。 等我有时间了把他 ... -
System.getProperty()
2007-09-22 09:33 1754java 代码 public class In ... -
HelloWorld
2007-09-22 09:17 1150HelloWorld没说的,java入门必学。好像所有的人都学 ... -
JAVA正则表达式4种常用功能
2007-09-04 17:55 1168正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加 ...
相关推荐
在Java编程领域,Swing、AWT和SWT都是用于构建图形用户界面(GUI)的框架。本篇文章将详细介绍如何在Eclipse集成开发环境中(IDE)搭建这些框架的开发环境,以及可以使用的相关插件。 首先,让我们从AWT(Abstract ...
Java是一种广泛使用的编程语言,在图形用户界面(GUI)设计领域提供了多种开发包,其中比较著名的有Swing、SWT和AWT。这三种技术各有特点和适用场景,在开发Java图形界面应用时,开发者需要根据实际需求选择最合适的...
【SWT、Swing、AWT 之间的差异】 在Java GUI开发中,SWT(Standard Widget Toolkit)、Swing和AWT(Abstract Window Toolkit)是三种常见的工具包。它们各自拥有不同的特性和优缺点,适用于不同场景。 **AWT...
swt swing awt的区别
### Java界面(Swing And AWT)非常非常好的一份资料 #### 图形用户界面(GUI)概览 在当今的应用程序开发领域中,图形用户界面(Graphical User Interface, GUI)已成为用户与计算机交互的主要方式之一。它通过...
简单的摇骰子游戏、使用线程和swing、awt.zip java作业。简单的摇骰子游戏、使用线程和swing、awt.zip java作业。简单的摇骰子游戏、使用线程和swing、awt.zip java作业。简单的摇骰子游戏、使用线程和swing、awt....
### 图形界面开发——AWT、Swing、SWT #### 18.1 图形界面简介 **18.1.1 概述** 在介绍AWT、Swing、SWT之前,我们先来简单了解一下图形用户界面(GUI)的概念及其在Java开发中的重要性。随着计算机技术的发展,用户...
在Java编程环境中,SWT(Standard Widget Toolkit)和AWT(Abstract Window Toolkit)以及SWING是三种常用的图形用户界面(GUI)开发库。SWT主要为Eclipse IDE提供支持,而AWT和SWING则是Java标准库的一部分。这篇...
它提供了三个主要的工具包:SWT(Standard Widget Toolkit)、Swing和AWT(Abstract Window Toolkit)。这三个工具包各有特点,适用于不同的开发场景。 AWT是Java最早的GUI工具包,它是Java平台的基础,包含了基本...
### Java计算器:Swing与AWT的综合应用 在探讨如何使用Java开发一个具备基本运算功能(加、减、乘、除以及开平方根)的计算器之前,我们首先需要了解Swing与AWT这两个用于图形用户界面(GUI)设计的框架。 #### AWT ...
【Java Swing 和 AWT 坦克游戏开发详解】 在Java编程领域,Swing和AWT是用于构建图形用户界面(GUI)的两个主要库。本项目“java swing\awt开发的坦克游戏”旨在通过实际操作,帮助开发者了解和掌握这两个库在游戏...
Swing和AWT是Java Standard Edition (J2SE)中的两个关键图形用户界面(GUI)工具包,用于创建桌面应用程序。这两个组件库都是Java平台的一部分,但它们在设计和功能上有所不同,为开发者提供了不同的选择。 AWT...
今天遇到一个问题,就是要在一个Eclipse插件里显示JFreeChart的图形,因为后者是基于Java2D的,要把图形显示在SWT应用程序里需要利用SWT-AWT桥接器来实现,虽说桥接的方式多半会伴随着性能下降,但总归是一个解决...
- **Swing**:Swing组件可以通过自定义外观(LookAndFeel)来实现跨平台的统一界面风格,同时提供了更多装饰和动画效果,使应用程序看起来更现代。 8. **编程注意事项** - **线程操作**:对Swing组件的线程操作...
cs架构swing_awt_sqlserver陶瓷工厂进销存管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)cs架构swing_awt_sqlserver陶瓷工厂进销存管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)cs架构swing_awt_sql...
在Java中,有三个主要的GUI工具包:AWT(Abstract Window Toolkit),SWT(Standard Widget Toolkit)和Swing。 1. AWT(Abstract Window Toolkit): AWT是Java最早提供的GUI库,它是Java的基础GUI组件集合。AWT...
在Java图形用户界面(GUI)开发中,Swing和AWT是非常重要的库,它们提供了丰富的组件和功能来创建桌面应用程序。本篇文章将围绕"Eclipse Swing AWT开发插件一(VE)"这一主题展开,详细讲解该插件及其相关知识点。 ...
Swing和AWT是Java GUI(图形用户界面)编程中的两个重要框架,它们都是用于创建桌面应用程序的组件库。然而,两者在设计理念、组件类型、性能和外观方面存在显著差异。 首先,AWT(Abstract Window Toolkit)是Java...