当前位置:首页 > 代码 > 正文

motif源代码(motif图解读)

admin 发布:2022-12-19 18:07 171


本篇文章给大家谈谈motif源代码,以及motif图解读对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

WCCH motif是什么

Motif 最初是由 OSF(开放基金协会)开发的一个工业标准的GUI(图形用户接口)。1996年,OSF 与 X/Open 合并为 Open Group,1997年初,X 联盟结束,并将其归属的项目移交给 Open Group。Open Group 继续开发和支持X窗口系统,Motif,CDE,和其他技术。2000年5月15日,Open Group 使用公共许可证向开放源代码团体发布了 Motif 的源代码。在开放系统(如Linux)上,可以使用免费的 Motif。

gui库的几种出色的C/C++ GUI函数库

Qt

Qt是Trolltech公司的一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE的基础,同时它还支持Windows、Macintosh、Unix/X11等多种平台。

GTK

GTK是一个大名鼎鼎的C的开源GUI库。在Linux世界中有Gnome这样的杀手应用。而GTKmm就是这个库的C++封装版本。

WxWidgets

跨平台的GUI库。因为其类层次极像MFC,所以有文章介绍从MFC到WxWidgets的代码移植以实现跨平台的功能。通过多年的开发也是一个日趋完善的GUI库,支持同样不弱于前面两个库。并且是完全开放源代码的。新近的C++ Builder X的GUI设计器就是基于这个库的。

MFC

大名鼎鼎的微软基础类库(Microsoft Foundation Class)。但凡学过VC++的人都应该知道这个库。虽然从技术角度讲,MFC是不大漂亮的,但是它构建于Windows API 之上,能够使程序员的工作更容易,编程效率高,减少了大量在建立 Windows 程序时必须编写的代码,同时它还提供了所有一般 C++ 编程的优点,例如继承和封装。MFC 编写的程序在各个版本的Windows操作系统上是可移植的,例如,在Windows 3.1下编写的代码可以很容易地移植到 Windows NT 或 Windows 95 上。但是在最近发展以及官方支持上日渐势微。

Fox

开放源代码的GUI库。作者从自己亲身的开发经验中得出了一个理想的GUI库应该是什么样子的感受出发,从而开始了对这个库的开发。有兴趣的可以尝试一下。

WTL

基于ATL的一个库。因为使用了大量ATL的轻量级手法,模板等技术,在代码尺寸,以及速度优化方面做得非常到位。主要面向的使用群体是开发COM轻量级供网络下载的可视化控件的开发者。

FLTK

fltk偏向于开发OpenGL图形应用程序,有界面设计器fluid,比较轻量级,所以不支持很多功能,例如Network、Print。代码中使用下划线。界面很像Motif,小而快是它的特点。LGPL协议,但有更多限制(好像分为是否修改源代码还是继承了widget类)。依赖静态回调函数,没有文件对话框,不支持拖曳和剪贴板。比较起来,似乎比Fox稳定。和Motif一样使用函数指针实现signal机制。

VCF

Visual Component Framework的框架设计非常好,不象Qt和wxWidget,它大量使用STL,比FLTK/Fox具有更加丰富的API,缺省使用Unicode,支持内置的国际化(本地化)和Undo/Redo机制,多线程和RTTI的支持也很好,可以说功能的丰富性直逼wxWidget和Qt,代码风格也是我喜欢的类型(使用namespace和类似java的命名方式)。它的目标是象VB一样使用C++,有Visual C++的插件支持RAD。运用模板和适当的宏实现了反射(RTTI)(不需要象Qt那样生成metaObject),用Observer模式实现了事件系统,库比Qt和MFC都小,大约2M左右。唯一让我遗憾的是它还不够成熟。

Notus

设计风格更加现代的框架,大量使用STL/Boost和模板技术,如果讨厌层次结构和多态的GUI框架,这个适合你。遗憾的是该项目不够成熟(Pre-alpha)。

Win32 GUI Generics

这是一个纯C++库,利用了C++里面的高级特性,避免了MFC里面的诸多问题,由于使用的event handler机制和MFC里面的MESSAGE MAP机制有本质的不同,所以不像MFC里面有一打莫名其妙的宏,整个框架非常干净整洁,当然,编写出来的代码也一样!

开放源代码软件的主要种类

Shareware

共享软件。允许他人自由拷贝并收取合理注册费用。使用者可在软件规定的试用期限内免费试用,再决定注册购买与否。大部分共享版软件都有功能和时间限制,试用期通常分为7天、21天、30天不等。而有的共享软件还限制用户只能安装一次,若删除后重新安装将会失效。像Winzip、ACDSee等软件就是共享软件。

Demos/"Crippleware"

免费或低费用试用的软件,是商业软件的一部分,它没有自由可用的源码,没有支持,通常缺乏关键特征。

Bundled Software

它由商业软件携带并且不用增加额外的费用,但是它一般具有很有限的使用许可,没有自由可用的源码。例如:Microsoft Internet Explore. "Consortium-Ware": 源码由公司内部人员共享,但是对公众没有自由可用的源码。例如:Motif. "Non-commercial use only": 这是可以免费从Internet网下载的典型软件,甚至连同源码,但是同时它有严格的许可证限制它的使用。例如:1998年以前的Netscape的浏览器一些Open-source许可证类型

BSD(Berkeley Source Distribution)许可证:它要求版权和著者身份申明

GPL

通用公共许可证("CopyLeft")禁止派生或分发产品的限制。

LGPL

库通用许可证,它不同于GPL许可证,在这个许可证下,库(函数库)可以自由的联接到私有软件。

Artistic License

使作者保持对进一步开发的控制。

NPL(Netscape Public Lincense)

基于GPL精神的新的许可证,但是保持了对源码更多的控制和所有权(请看下面的“Netscape发展什么”这一节)

Public Domain/Not Copyrighted/No Restrictions: 通常用于决定性的算法以鼓励广泛使用,通常由美国政府使用。

Open-source 软件的一些例子

现在有几百种成熟的open-source产品被广泛使用。这而是一些最著名的:

Corncart

由OSIC信息技术有限公司最新开发的开源电子软件,集合之前所有电子开源软件的所有优点。目前尚处于二次开发阶段。

BSD UNⅨ

由California大学Berkeley分校开发的基于"BSD"许可证的软件。许多UNⅨ商业版本是直接基于BSD源码或者大多从它的设计中借用来的。

Linux: 它从一个芬兰的大学生的研究项目成长为近六年最流行的非Microsoft操作系统。最初它仅仅是为PCs机设计的,可现在它支持Palm Pilots(小型掌中平台),大型的64位Digital Alphas芯片的超级计算机,和在这两者之间的几乎任何事物。与传统操作系统相比它的效率更高,更可靠,更先进。它包括编译程序,库,和来自于FreeSoftware Foundation的各种工具,还有成千上万的open-source产品,Linux平台是一个小的但是却在快速成长的商业产业的基础,还是软件革新的温床。它由商业公司和散布在全世界的自由编程人员基于GPL所开发。

Perl语言

"Internet的传输带”,大多数web服务器的动态内容的基础,广泛用于脚本语言编程和自动化文档处理。它由Perl研究所基于Artistic 许可协议开发。

GCC

GNU C编译器是许多Unix平台上首选的C/C++编译器,也可以在其他平台上运行;因为支持几乎每种处理器,所以它也被作为一个跨平台的工具而广为流行;它由FSF基于GPL维护、开发。

X Window 系统

使用最广的非microsoft窗口系统,具有先进的跨平台远程执行特性,性能优良,灵活度高;由MIT和X Consortium在类BSD许可协议下开发;其他的增强功能由The XFree86 Project公司开发。

Internet 主干:

BIND: Berkeley Internet Name Daemon; 为几乎所有的Internet域名解析服务器使用,其行为如同一个分散全球的分布式数据库;由ISC(Internet Software Consortium)维护。

BSD SendMail: 邮件传输代理的最高标准。没有任何一家商业竞争者能和它匹敌,绝对安全、健壮;负责处理Internet上超过75%的邮件传输任务,包括象AOL这样的巨型站点---每天有数百万的消息。由SendMail公司基于BSD许可协议维护。

INN:InterNet新闻服务器,操纵Internet上的决大多数Usenet新闻还包括许多企业网。被ISC(BSD)所维护(BSD许可协议)。

Apache: 超过半数的web服务器的动力(远远超出Microsoft和Netscape加起来的数量),早在1998年用于超过百万的web服务器。由Apache组织开发(类BSD许可证维护)。

WU-FTPD: 在Internet网上最流行的FTP服务器,几乎使用于所有的FTP站点。最初是由Bryan O'Connor在Washington大学Louis大街开发的,现在被Academ Consulting Services和许多自愿者维护(BSD许可)。

史上最难的游戏hardest2,退出程序后,关卡清零,在线等帮助!急,急,急

这是一个俄罗斯方块游戏的源代码

没有完成,代码太长,我用另一个电话号码,然后用胶水

进口的javax.swing了。 ;

进口javax.swing.JOptionPane

进口javax.swing.border.Border;进口javax.swing.border.EtchedBorder

进口软件包java.awt。 *

进口java.awt.event中。 *;

/ **

*游戏主类继承自JFrame类,是负责全球对比赛的控制。

包括

* 1,参考的了GameCanvas画布类的一个实例

一个保存当前活动的的块(ErsBlock)的一个实例

* 3,保存的控制面板(控制面板)的一个实例; * /

公共类ErsBlocksGame的使用extends JFrame的{

/ **

*各填一排多少个点* /

最终的静态int PER_LINE_SCORE = 100;

/ **

*图的点数可以升级* /

最终的静态int PER_LEVEL_SCORE = PER_LINE_SCORE * 20;

/ **

*水平的最大数量是10 * /

最终的静态int MAX_LEVEL = 10;默认

/ **

*系列* /

公众最终的静态,诠释DEFAULT_LEVEL = 5;

私人的GameCanvas画布;

私人ErsBlock块;

私人布尔玩= FALSE;

私人控制面板“ctrlPanel

私人JMenuBar的酒吧新的JMenuBar();

私人的JMenu的

MGAME新的JMenu(“游戏设置”),

mControl新的JMenu (游戏控制)

mWindowStyle =新的JMenu(“窗口式”);

私人的JMenuItem

miNewGame =新的JMenuItem(“新游戏”)

miSetBlockColor =新的JMenuItem (“设置颜色...”),

miSetBackColor新的JMenuItem(“将背景色设置...”),

miTurnHarder =新的的JMenuItem(“提升等级”)

miTurnEasier =新的JMenuItem(“经调整的最底层”)

miExit =新的JMenuItem(“退出”)

miPlay =新的JMenuItem(“开始游戏”),

miPause =新的JMenuItem(“暂停”),

miResume新的JMenuItem(“继续”);

私人的JCheckBoxMenuItem

miAsWindows:新的JCheckBoxMenuItem(“风格”), / miAsMotif =新的JCheckBoxMenuItem一个(“风格”),

miAsMetal =新的JCheckBoxMenuItem A(“风格”,真正的);

/ **

*主要的游戏类构造函数

。 _at_参数标题字符串窗口的标题* /

:公共ErsBlocksGame(字符串名称){

超(职称);

/ / this.setTitle(“lskdf)的;

setSize (315,392);

和尺寸scrSize = Toolkit.getDefaultToolkit()。 getScreenSize();

/ /获得屏幕的大小

到并行的setLocation((scrSize.width - getSize()宽)/ 2

(scrSize.height - getSize( )身高)/ 2);

createMenu();

集装箱货柜= getContentPane();

container.setLayout(新的BorderLayout(6,0) );

帆布=新的GameCanvas(20,12);

ctrlPanel新控制面板“(这);

使用Container.add(画布,使用BorderLayout.CENTER)

使用Container.add(ctrlPanel,BorderLayout的。EAST);

addWindowListener页(新WindowAdapter(){

无效windowClosing(WindowEvent我们){

JOptionPane的约=新的JOptionPane的();

stopGame();

System.exit(0);}

});

addComponentListener(新ComponentAdapter(){BR /公共无效componentResized(ComponentEvent中CE){

canvas.fanning();

}

});

的show();

canvas.fanning(); BR /}

/ /游戏的“复位”

无效复位(){

ctrlPanel.reset();

canvas.reset();

} BR / / **

*判断比赛仍在进行中

_at_返回布尔值,仍在运行的真实假已经停止* /

的布尔IsPlaying模块(){

回报播放;

}

/ **

*当前处于活动状态的块

_at_回报,ErsBlock当前处于活动状态的块参照* /

的ErsBlock的getCurBlock“公共”(){

回报块;

}

/ **

*到当前画布

* _at_回报,在GameCanvas当前画布参考* /

了GameCanvas getCanvas (){

回报帆布}

/ **

*开始游戏* /公共无效

玩笑(){

播放();

ctrlPanel.setPlayButtonEnable(假);

miPlay.setEnabled(假);

ctrlPanel.requestFocus();}

/ ** BR / *游戏暂停* /

的公共无效pauseGame(){

(block! = NULL)block.pauseMove();

ctrlPanel.setPauseButtonLabel(假);

miPause.setEnabled(假);

miResume。的setEnabled();

}

/ **

让我们在游戏中继续暂停* /

的公共无效resumeGame(){

(块=空)block.resumeMove“();

ctrlPanel.setPauseButtonLabel(TRUE);

的miPause.setEnabled(TRUE);

miResume.setEnabled(假);

ctrlPanel.requestFocus() ;

}

/ **

*用户停止游戏* /

公众的无效stopGame(){

玩= FALSE;

(block! = NULL)block.stopMove();

的miPlay.setEnabled(TRUE);

miPause.setEnabled(TRUE);

miResume.setEnabled(假);

ctrlPanel setPlayButtonEnable();

ctrlPanel.setPauseButtonLabel(TRUE);

}

/ **

*游戏设定游戏难度

_at_返回int难度的游戏 - MAX_LEVEL * /

公共getLevel(){

的回报ctrlPanel.getLevel();

}

/ **

*允许用户* @参数级别的诠释,难度的游戏1 MAX_LEVEL * /

公共无效setLevel(水平){

(水平 0级)ctrlPanel.setLevel(水平);

}

/ **

*获得局点

_at_返回int,不可分割的。 * /

公共getScore(){

(canvas! = NULL)返回canvas.getScore();

返回0;}

/ ** BR / *拿到局点,因为自上次升级,升级后,这点明确

_at_返回int积分。 * /

公共getScoreForLevelUpdate(){

(canvas! = NULL)返回canvas.getScoreForLevelUpdate();

返回0;}

/ ** BR /当分数累积到一定的数量或类

的_at_回报布尔的TURE更新successufl的,虚假的更新失败

* /

公众的布尔levelUpdate(){

诠释curLevel getLevel();

(curLevel MAX_LEVEL){

setLevel(curLevel + 1);

canvas.resetScoreForLevelUpdate();

返回true;

}

返回FALSE;

}

/ **

*游戏开始* /

私人无效的发挥(){

复位()

打= TRUE;

线程的线程=新主题(新的游戏());

thread.start();

}

/ **

*举报游戏结束* /

的私人无效reportGameOver(){

JOptionPane.showMessageDialog(这一点,“比赛结束了!”);

} BR / / **

*建立和设置窗口菜单* /

的私人无效createMenu(){

bar.add(MGAME);

bar.add(mControl);

bar.add(mWindowStyle);

mGame.add(miNewGame);

mGame.addSeparator();

mGame.add(miSetBlockColor);

MGAME。添加(miSetBackColor);

mGame.addSeparator();

mGame.add(miTurnHarder);

mGame.add(miTurnEasier);

mGame.addSeparator(); BR / mGame.add(miExit);

mControl.add(miPlay);

mControl.add(miPause);

mControl.add(miResume);

BR / mWindowStyle.add(miAsWindows);

mWindowStyle.add(miAsMotif);

mWindowStyle.add(miAsMetal);

setJMenuBar(栏);

BR / miPause.setAccelerator(

KeyStroke.getKeyStroke(KeyEvent.VK_P,KeyEvent.CTRL_MASK));

miResume.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0));

BR / miNewGame.addActionListener(新的ActionListener(){

无效的actionPerformed(ActionEvent的AE){

stopGame();

复位();

setLevel(DEFAULT_LEVEL)的; BR /}

});

miSetBlockColor.addActionListener(新的ActionListener(){

无效的actionPerformed(ActionEvent的AE){

颜色newFrontColor =

颜色选择器。的ShowDialog(ErsBlocksGame.this,

“设定的建设色块,canvas.getBlockColor的());

(newFrontColor! = NULL)

canvas.setBlockColor(newFrontColor); /}

});

miSetBackColor.addActionListener(新的ActionListener(){

无效的actionPerformed(ActionEvent的AE){

颜色newBackColor =

JColorChooser.showDialog( ErsBlocksGame集底版颜色。这一点,

“canvas.getBackgroundColor的());

的(newBackColor! = NULL)

canvas.setBackgroundColor(newBackColor);

} });

miTurnHarder.addActionListener(新的ActionListener(){

无效的actionPerformed(ActionEvent的AE){

诠释curLevel getLevel();

(curLevel ; MAX_LEVEL)setLevel(curLevel + 1);

}

});

miTurnEasier.addActionListener(新的ActionListener(){

无效的actionPerformed(ActionEvent的AE){

curLevel = getLevel();

(curLevel 1)setLevel(curLevel - 1);

}

});

miExit.addActionListener(新的ActionListener(){ BR /公共无效的actionPerformed(ActionEvent的AE){

(0);

}

});

miPlay.addActionListener(新的ActionListener(){BR /公共无效的actionPerformed(ActionEvent的AE){

玩笑();

}

});

miPause.addActionListener(新的ActionListener(){

无效的actionPerformed( ActionEvent的AE){

pauseGame();}

});

miResume.addActionListener(新的ActionListener(){

无效的actionPerformed(ActionEvent的AE){ BR / resumeGame();

}

});

miAsWindows.addActionListener页(新的ActionListener(){

无效的actionPerformed(ActionEvent的AE){...... /字符串PLAF =“com.sun.java.swing.plaf.windows.WindowsLookAndFeel

setWindowStyle(PLAF);

canvas.fanning();

ctrlPanel.fanning();

miAsWindows.setState(TRUE);

miAsMetal.setState(假);

miAsMotif.setState(假);

}

});

miAsMotif 。的addActionListener方法(新的ActionListener(){

无效的actionPerformed(ActionEvent的AE){

字符串PLAF =“com.sun.java.swing.plaf.motif.MotifLookAndFeel”的;

setWindowStyle(PLAF );

canvas.fanning();

ctrlPanel.fanning();

miAsWindows.setState(假);

miAsMetal.setState(假);

miAsMotif。 setState();

}

});

miAsMetal.addActionListener(新的ActionListener(){

无效的actionPerformed(ActionEvent的AE){

字符串PLAF“ javax.swing.plaf.metal.MetalLookAndFeel“;

setWindowStyle(PLAF);

canvas.fanning();

ctrlPanel.fanning();

miAsWindows。setState(假)

miAsMetal.setState(TRUE);

miAsMotif.setState(假);

}

});}

/ ** BR / *根据字符串设置窗口的外观

_at_的参数PLAF字符串的窗口的外观,说明

* /的

的私人无效setWindowStyle(字符串PLAF){

尝试{

UIManager.setLookAndFeel(PLAF)的

SwingUtilities.updateComponentTreeUI(本);

}赶上(例外五){

}

}

/ *

*在游戏过程中,Runnable接口

*游戏是一个大的周期,这个周期每100毫秒

检查当前块在游戏中,无论是在年底,如果不,

继续等待。如果到了最后,看到有完整的填充线

*如果你删除它,加分的球员,随机生成一个

*当前块,它会自动下落。 *产生一个新的块,先检查在画布上线

占用,而如果能够判断游戏结束。 * /

私人类游戏实现的Runnable {

公共无效的run(){

/ /生成新的党的快速

整数关口=(INT)(Math.random()*( canvas.getCols() - 3)),

风格= ErsBlock.STYLES [(INT)(Math.random()* 7)] [(INT)(Math.random()的* 4)]; ...... /而(播放){

如果(block! = NULL){/ /第一个循环,阻止空

(block.isAlive()){

尝试{主题currentThread()。睡眠(100);

}的catch(InterruptedException的IE浏览器){

ie.printStackTrace();

}

继续;

}

}

checkFullLine()/ /检查线路

如果完全填充(,是否isGameOver()){/ /检查本场比赛应该结束

miPlay.setEnabled(TRUE);

miPause的setEnabled();

miResume.setEnabled(假);

ctrlPanel.setPlayButtonEnable(TRUE);

ctrlPanel.setPauseButtonLabel(TRUE);

reportGameOver()

回报;

}

块=新ErsBlock(风格,-1,山坳里,getLevel(),,帆布);

块。开始();

列=(INT)(Math.random()*(canvas.getCols() - 3));

风格= ErsBlock.STYLES [(INT)(数学随机()* 7)] [(INT)(Math.random()* 4)];

ctrlPanel.setTipStyle(风格);

}

} / **

*检查帆布完整的填写就行了,如果你删除* /

无效checkFullLine(){

为(int i = 0; I canvas.getRows( ),我+ +){

行= -1;

布尔fullLineColorBox = TRUE;

(J = 0,J canvas.getCols(); + +){

(,!canvas.getBox(I,J)。isColorBox()){

fullLineColorBox = FALSE;

突破;

}

}

(fullLineColorBox){

行= - ;

canvas.removeLine(行);

}

}

}

/ **

已入账的顶线的基础上,以确定游戏是否已经结束。 * @返回布尔值,真正的游戏结束是不是假游戏结束* /

私人布尔isGameOver的是(){

(INT I = 0; I canvas.getCols (); i + +){

ErsBox盒= canvas.getBox(0,I);

(box.isColorBox())返回true;}

返回false

}

}

关于java的lookandfeel的问题

以下的请参考,希望有帮助:

与“Look and Feel”密切相关的是LookAndFeel抽象类和UIManager类。

LookAndFeel类

LookAndFeel是一个抽象类,除了提供了一些static方法,还定义了一些抽象的个性化设置方法来由子类实现。

从JDK1.1.3开始,Sun提供了三个LookAndFeel的子类 javax.swing.plaf.metal.MetalLookAndFeel、

com.sun.java.swing.plaf.motif.MotifLookAndFeel、

com.sun.java.swing.plaf.windows. WindowsLookAndFeel。

它们分别提供了“Metal”、“Motif”与“Windows”的界面式样。也就是说,任何基于Swing的界面程序本身都可以使用三种系统提供的皮肤。实际上我们也可以直接或间接继承LookAndFeel类,自己编写一种“皮肤”。

开放源代码的产品Skin Look And Feel 1.2.2

在可以找到它的全部源代码。Skin Look And Feel本身还可以更换提供的各种“皮肤”,让你的程序可以各种“皮肤”示人。

UIManager类

这个类就是Swing界面管理的核心,管理Swing的小应用程序以及应用程序样式的状态。UIManager类提供了下列静态方法用于更换与管理“Look and Feel”:

static void addAuxiliaryLookAndFeel(LookAndFeel laf)

//增加一个“Look And Feel”到辅助的“look and feels”列表

static LookAndFeel[] getAuxiliaryLookAndFeels()

//返回辅助的“look and feels”列表(可能为空)。

static String getCrossPlatformLookAndFeelClassName()

//返回缺省的实现了跨平台的Look and Feel——即Java Look and Feel(JLF)。

static UIManager.LookAndFeelInfo[] getInstalledLookAndFeels()

//返回了在目前已经安装的LookAndFeel的信息。

static LookAndFeel getLookAndFeel()

//返回当前使用的Look and Feel

static String getSystemLookAndFeelClassName()

//返回与当前系统相关的本地系统Look and Feel,如果没有实现本地Look and

Feel则返回缺省的跨平台的Look and Feel。

static void installLookAndFeel(String name, String className)

//创建一个新的Look and Feel并安装到当前系统。

static void installLookAndFeel(UIManager.LookAndFeelInfo info)

//创建一个新的Look and Feel并安装到当前系统。

static boolean removeAuxiliaryLookAndFeel(LookAndFeel laf)

//从辅助的“look and feels”列表删除一个“Look And Feel”

static void setInstalledLookAndFeels(UIManager.LookAndFeelInfo[] infos)

//设置当前的已安装Look and Feel信。

static void setLookAndFeel(LookAndFeel newLookAndFeel)

//设置当前使用的LookAndFeel。

static void setLookAndFeel(String className)

//设置当前使用的LookAndFeel。参数是类名。

下面的源代码可以在Skin Look And Feel 1.2.2下的源代码根目录下找到:

public class Skinit extends javax.swing.JApplet

{

/**

* The main program for the Skinit class

*

* @param args The command line arguments

* @exception Exception Description of Exception

*/

public static void main(String[] args) throws Exception

{

if (args.length == 0) {

printUsage();

}

motif源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于motif图解读、motif源代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/16742.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载