包含javasplash的词条
本篇文章给大家谈谈javasplash,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java很神奇 用swing制作欢迎屏幕
- 2、java SplashScreen类问题
- 3、请详细写出Javac和Java两个命令的使用方式
- 4、Java程序读取一张图片报空指针错误
- 5、怎么检验java是否安装成功
- 6、java如何打包
Java很神奇 用swing制作欢迎屏幕
几乎所有时髦的应用都有一个欢迎屏幕 欢迎屏幕既是宣传产品的方法之一 而且在长时间的应用启动过程中 欢迎屏幕还用来表示应用正在准备过程中 现在教你怎么用java中的swing技术制作一个时髦的欢迎屏幕
下面是一个最简单的欢迎屏幕实现
Java代码
class SplashWindow extends JWindow
{
public SplashWindow (String filename Frame f)
{
super(f);
JLabel l = new JLabel(new ImageIcon(filename));
getContentPane() add(l BorderLayout CENTER);
pack();
Dimension screenSize =
Toolkit getDefaultToolkit() getScreenSize();
Dimension labelSize = l getPreferredSize();
setLocation(screenSize width/ (labelSize width/ )
screenSize height/ (labelSize height/ ));
setVisible(true);
screenSize = null;
labelSize = null;
}
}
SplashWindow 类从Swing的JWindow派生 JWindow是一个容器 它没有其他窗口所具有的各种窗口元素 如标题条 窗口管理按钮 甚至连突出显示的边框也没有 因此 JWindow对于制作欢迎屏幕来说是非常合适的 上面的代码假定图形文件在当前目录 图形通过ImageIcon装入内存 然后它就被放到了JWindow的中心 接着 窗口被pack() 这使得Swing把窗口调整到适当的大小 最后窗口被移到了屏幕的中心
如果我们运行上面的程序 可以发现虽然欢迎画面确实出现在屏幕中央 但遗憾的 它却不会关闭!要关闭欢迎画面 我们需要加入更多的代码 Java代码
class SplashWindow extends JWindow
{
public SplashWindow (String filename Frame f)
{
super(f);
JLabel l = new JLabel(new ImageIcon(filename));
getContentPane() add(l BorderLayout CENTER);
pack();
Dimension screenSize =
Toolkit getDefaultToolkit() getScreenSize();
Dimension labelSize = l getPreferredSize();
setLocation(screenSize width/ (labelSize width/ )
screenSize height/ (labelSize height/ ));
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
setVisible(false);
dispose();
}
});
setVisible(true);
}
}
和原先的SplashWindow 类相比 这个SplashWindow 类唯一的区别在于多出了一个安装到JWindow上的匿名MouseListener 经过这个改动之后 用户可以点击欢迎屏幕关闭它
现在我们有了一个很不错的欢迎屏幕 它可以通过点击的方法关闭 但它不会自己消失 接下来我们要加入代码 使得欢迎屏幕在显示一定的时间之后自动消失 这里我们要考虑到运用线程
Java代码
class SplashWindow extends JWindow
{
public SplashWindow (String filename Frame f int waitTime)
{
super(f);
JLabel l = new JLabel(new ImageIcon(filename));
getContentPane() add(l BorderLayout CENTER);
pack();
Dimension screenSize =
Toolkit getDefaultToolkit() getScreenSize();
Dimension labelSize = l getPreferredSize();
setLocation(screenSize width/ (labelSize width/ )
screenSize height/ (labelSize height/ ));
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
setVisible(false);
dispose();
}
});
final int pause = waitTime;
final Runnable closerRunner = new Runnable()
{
public void run()
{
setVisible(false);
dispose();
}
};
Runnable waitRunner = new Runnable()
{
public void run()
{
try
{
Thread sleep(pause);
SwingUtilities invokeAndWait(closerRunner);
}
catch(Exception e)
{
e printStackTrace();
// 能够捕获InvocationTargetException
// 能够捕获InterruptedException
}
}
};
setVisible(true);
Thread splashThread = new Thread(waitRunner SplashThread );
splashThread start();
}
}
这里的基本思路是利用一个在一定时间内暂停等待的Thread对象 在上面的代码中 线程的暂停时间是 秒 当这个线程唤醒时 它将关闭欢迎屏幕 由于Swing是非线程安全的 除非代码在事件分派线程上执行 否则它就不应该影响任何UI组件的状态 所谓事件分派线程 就是Swing中负责绘图和事件处理的线程
为了解决这个问题 Swing设计者赋予我们安全地把Runnable对象加入UI事件队列的能力 在本例中 我们用可运行对象closerRunner完成最关键的工作 我们把可运行对象传入SwingUtilities invokeAndWait()静态方法 然后wingUtilities invokeAndWait()进行所有未完成的UI操作 并执行传递给该方法的可运行对象closerRunner的run方法 通过运用一个独立的线程负责欢迎屏幕的关闭操作 应用担负起了显示和关闭欢迎屏幕之间的所有操作
如果要让欢迎屏幕总是显示且用户不能关闭它 你必须删除那些隐藏欢迎屏幕的代码 如果要让欢迎屏幕只能由用户手工关闭 你可以象使用任何其他JWindow对象一样调用SplashWindow 对象上的setVisible(false)和dispose()方法
lishixinzhi/Article/program/Java/hx/201311/26872
java SplashScreen类问题
可以使用jdk6.0中的 -splash选项直接指定一副图片作为闪屏,格式为:java -splash:splash图片文件的路径 Mainclass文件
如果要交互可以参考
请详细写出Javac和Java两个命令的使用方式
javaac和java两个命令的使用详解:
一、javac命令
javac 用于编译Java文件,格式为:
java [options] [sourcefiles] [@files]
其中:
options:命令行选项;
sourcefiles:一个或多个要编译的源文件;
@files:一个或多个对源文件进行列表的文件,有时候要编译的文件很多,一个个敲命令会显得很长,也不方便修改,可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,对编译一个工程很有用,方便,省事。
有几个比较重要的选项:
-d 用于指定编译成的class文件的存放位置,缺省情况下不指定class文件的存放目录,编译的class文件将和源文件在同一目录下;
-classpath 可以简写成-cp,用于搜索编译所需的class文件,指出编译所用到的class文件的位置,如jar、zip或者其他包含class文件的目录,指定该选项会覆盖CLASSPATH的设定;
-sourcepath用于搜索编译所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目录;
需要注意windows下和linux下文件路径分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的区别:
windows下文件路径分隔符用 \ ,文件列表分隔符用分号 ;
linux下文件路径分隔符用 / ,文件列表分隔符用冒号 :
二、java命令
java 用于执行程序,格式如下:
java [options] classfile
options:命令行选项,一般用于 -classpath 指定要执行的文件所在的位置以及需要用到的类路径,包括jar、zip和class文件目录,会覆盖CLASSPATH的设定
三、脚本
如果要敲的命令很长,每次要编译运行的时候都要重新敲一遍,这是一件很痛苦的事情,所以用脚本可以大大方便你的工作量。在linux下用shell脚本,windows下用bat批处理程序。因为是在linux下,我这里只是简单介绍一下shell,关于bat批处理程序的语法自己百度一下,不难。
1. 开头
linux有很多不同的shell,通常使用bash(bourne again shell),程序必须以下面的行开始:
#!/bin/sh
#!用来告诉系统用后面的参数来执行程序,这里使用的是/bin/sh
要使你的脚本能够执行,还必须让这个文件有可执行权限,使用下面命令更改文件权限:
chmod +x filename
2. 注释
以#开始的句子表示注释,一直到这行结束,多写注释有利于以后重新看的时候知道自己在做什么
Java程序读取一张图片报空指针错误
不要用Panel.class.getResource()这种方式,直接Toolkit.getDefaultToolkit().getImage("文件路径")就可以了。
Panel.class.getResource()是用来读取类路径下文件的,比如splash.gif放在Mypaint的包下,可以用Mypaint.class.getResource(“splash.gif”)方式来获取。
怎么检验java是否安装成功
xp下:开始——运行——cmd 确定——java 回车——C:\Documents and Settings\Administratorjava
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.
-cp class search path of directories and zip/jar files
-classpath class search path of directories and zip/jar fil
A ; separated list of directories, JAR archive
and ZIP archives to search for class files.
-Dname=value
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print product version and exit
-version:value
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -jre-no-restrict-search
include/exclude user private JREs in the versi
-? -help print this help message
-X print help on non-standard options
-ea[:packagename...|:classname]
-enableassertions[:packagename...|:classname]
enable assertions
-da[:packagename...|:classname]
-disableassertions[:packagename...|:classname]
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:libname[=options]
load native agent library libname, e.g. -age
see also, -agentlib:jdwp=help and -agentlib:
-agentpath:pathname[=options]
load native agent library by full pathname
-javaagent:jarpath[=options]
load Java programming language agent, see java
-splash:imagepath
show splash screen with specified image
javac 回车——C:\Documents and Settings\Administratorjavac
用法:javac 选项 源文件
其中,可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
-deprecation 输出使用已过时的 API 的源位置
-classpath 路径 指定查找用户类文件和注释处理程序的
-cp 路径 指定查找用户类文件和注释处理程序的
-sourcepath 路径 指定查找输入源文件的位置
-bootclasspath 路径 覆盖引导类文件的位置
-extdirs 目录 覆盖安装的扩展目录的位置
-endorseddirs 目录 覆盖签名的标准路径的位置
-proc:{none,only} 控制是否执行注释处理和/或编译。
-processor class1[,class2,class3...]要运行的注释处理程序
的搜索进程
-processorpath 路径 指定查找注释处理程序的位置
-d 目录 指定存放生成的类文件的位置
-s 目录 指定存放生成的源文件的位置
-implicit:{none,class} 指定是否为隐式引用文件生成类文件
-encoding 编码 指定源文件使用的字符编码
-source 版本 提供与指定版本的源兼容性
-target 版本 生成特定 VM 版本的类文件
-version 版本信息
-help 输出标准选项的提要
-Akey[=value] 传递给注释处理程序的选项
-X 输出非标准选项的提要
-J标志 直接将 标志 传递给运行时系统
如果是这样的结果,说明你的Jdk安装成功了。大部分不成功的原因在于环境变量的配置不正确,所以一定要仔细设置环境变量的值。
没有更改路径安装的JDK,设置环境变量的值是这样的:
ClassPath .;C:\Program Files\Java\jdk1.6.0_24\lib\toos.jar;C:\Program Files\Java\jdk1.6.0_24\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_24\bin
Path C:\Program Files\Java\jdk1.6.0_24\bin;
java如何打包
建议使用ANT打包工具,下载地址:
此工具用java编写,跨平台,能实现很多功能:编译、打包、运行、文件操作、数据库操作、自定义任务等。
主要使用方法:在工程目录下编写build.xml配置文件,然后运行ant即可:
#ant
或
#java -jar ant.jar
下面给你提供一个例子,是jakarta-oro-2.0.8的包的build.xml
?xml version="1.0"?
project default="jar"
!-- Allow properties following these statements to be overridden --
!-- Note that all of these don't have to exist. They've just been defined
incase they are used. --
property file="build.properties"/
!--
property file=".ant.properties"/
property file="${user.home}/.ant.properties"/
property file="default.properties"/
--
!-- prepare target. Creates build directories. --
target name="splash"
splash imageurl="./ant_logo_medium.gif"/
/target
target name="prepare" depends="splash" description="Creates build directories."
tstamp
format property="DATE" pattern="yyyy-MM-dd hh:mm:ss" /
/tstamp
mkdir dir="${build.dest}"/
mkdir dir="${build.dest}/META-INF"/
copy todir="${build.dest}/META-INF"
fileset dir="${top.dir}"
include name="LICENSE"/
/fileset
/copy
mkdir dir="${build.tests}"/
available file="${jakarta-site2.dir}/lib" type="dir"
property="AnakiaTask.present"/
/target
target name="prepare-error" depends="prepare"
description="Prints error message for prepare target."
unless="AnakiaTask.present"
echo
AnakiaTask is not present! Please check to make sure that
velocity.jar is in your classpath.
/echo
/target
!-- lib target. Compiles the library classes only --
target name="lib" depends="prepare"
description="Compiles the library classes only."
javac srcdir="${build.src}"
destdir="${build.dest}"
excludes="examples/**,tools/**"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"/
/target
!-- examples target. Compiles the example classes. --
target name="examples" depends="prepare,lib"
description="Compiles the example classes."
javac srcdir="${build.src}"
destdir="${build.dest}"
includes="examples/**"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"/
/target
!-- tools target. Compiles the tool classes. --
target name="tools" depends="prepare,lib"
description="Compiles the tool classes."
javac srcdir="${build.src}"
destdir="${build.dest}"
includes="tools/**"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"/
/target
!-- tests target. Compiles and runs the unit tests. --
target name="tests" depends="prepare,lib"
description="Compiles and runs the unit tests."
javac srcdir="${build.src}/tests"
destdir="${build.tests}"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"/
/target
!-- jar target. Compiles the source directory and creates a .jar file --
target name="jar" depends="lib" description="Compiles the source directory and creates a .jar file."
jar jarfile="${top.dir}/${final.name}.jar"
basedir="${build.dest}"
includes="org/**,META-INF/**"
excludes="**/package.html,**/overview.html"
manifest
section name="org/apache/oro"
attribute name="Specification-Title"
value="Jakarta ORO" /
attribute name="Specification-Version"
value="${version}" /
attribute name="Specification-Vendor"
value="Apache Software Foundation" /
attribute name="Implementation-Title"
value="org.apache.oro" /
attribute name="Implementation-Version"
value="${version} ${DATE}" /
attribute name="Implementation-Vendor"
value="Apache Software Foundation" /
/section
/manifest
/jar
/target
!-- javadocs target. Creates the API documentation --
target name="javadocs" depends="prepare"
description="Creates the API documentation."
mkdir dir="${javadoc.destdir}"/
javadoc packagenames="org.apache.oro.io,org.apache.oro.text,org.apache.oro.text.regex,org.apache.oro.text.awk,org.apache.oro.text.perl,org.apache.oro.util"
sourcepath="${build.src}"
destdir="${javadoc.destdir}"
overview="${build.src}/org/apache/oro/overview.html"
author="true"
version="true"
windowtitle="${name} ${version} API"
doctitle="${name} ${version} API"
header="a href='' target=_topimg src='{@docroot}/../images/logoSmall.gif' alt='Jakarta ORO' width=48 height=47 align=center border=0 hspace=1 vspace=1/a"
bottom="Copyright © ${year} Apache Software Foundation. All Rights Reserved."
/javadoc
replace file="${javadoc.destdir}/overview-frame.html"
token="{@docroot}" value="."/
replace dir="${javadoc.destdir}" includes="**/*.html"
token="@version@" value="${version}"/
/target
!-- docs target. Creates project web pages and documentation. --
target name="docs" depends="prepare-error,lib,examples"
description="Creates the project web pages and documentation."
if="AnakiaTask.present"
taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask"
classpath
fileset dir="${jakarta-site2.dir}/lib"
include name="*.jar"/
/fileset
/classpath
/taskdef
anakia basedir="${docs.src}" destdir="${docs.dest}/"
extension=".html" style="./site.vsl"
projectFile="stylesheets/project.xml"
excludes="**/stylesheets/** manual/** empty.xml"
includes="**/*.xml"
lastModifiedCheck="true"
templatePath="${jakarta-site2.dir}/xdocs/stylesheets"
/anakia
copy todir="${docs.dest}/images" filtering="no"
fileset dir="${docs.src}/images"
include name="**/*.gif"/
include name="**/*.jpeg"/
include name="**/*.jpg"/
/fileset
/copy
mkdir dir="${docs.dest}/classes"/
mkdir dir="${docs.dest}/classes/examples"/
copy todir="${docs.dest}/classes/examples" filtering="no"
fileset dir="${build.dest}/examples"
include name="MatcherDemoApplet.class"/
/fileset
/copy
mkdir dir="${docs.dest}/classes/org"/
copy todir="${docs.dest}/classes/org" filtering="no"
fileset dir="${build.dest}/org"
include name="**/*.class"/
/fileset
/copy
/target
!-- package target --
target name="package" depends="jar,javadocs,docs"
description="Creates a distribution directory tree."
mkdir dir="${final.dir}"/
copy todir="${final.dir}/src"
fileset dir="${code.src}"/
/copy
!-- BEGIN_REMOVE_THIS --
!-- Remove this when there's a first draft of the manual. --
copy todir="${final.dir}/docs"
fileset dir="${docs.dest}"
exclude name="manual/**"/
/fileset
/copy
!-- END_REMOVE_THIS --
copy file="${top.dir}/build.xml" tofile="${final.dir}/build.xml"/
copy file="${top.dir}/build.properties"
tofile="${final.dir}/build.properties"/
copy file="${top.dir}/LICENSE" tofile="${final.dir}/LICENSE"/
copy file="${top.dir}/ISSUES" tofile="${final.dir}/ISSUES"/
copy file="${top.dir}/CHANGES" tofile="${final.dir}/CHANGES"/
copy file="${top.dir}/COMPILE" tofile="${final.dir}/COMPILE"/
copy file="${top.dir}/CONTRIBUTORS"
tofile="${final.dir}/CONTRIBUTORS"/
copy file="${top.dir}/README" tofile="${final.dir}/README"/
copy file="${top.dir}/STYLE" tofile="${final.dir}/STYLE"/
copy file="${top.dir}/TODO" tofile="${final.dir}/TODO"/
copy file="${top.dir}/${final.name}.jar" tofile="${final.dir}/${final.name}.jar"/
/target
!-- package-zip target. Packages the distribution with ZIP --
target name="package-zip" depends="package"
description="Packages the distribution as a zip file."
zip zipfile="${top.dir}/${final.name}.zip" basedir="${top.dir}/"
includes="**/${final.name}/**" excludes="**/.cvsignore"/
/target
!-- Packages the distribution with TAR-GZIP --
target name="package-tgz" depends="package"
description="Packages the distribution as a gzipped tar file."
tar tarfile="${top.dir}/${final.name}.tar"
basedir="${top.dir}" excludes="**/**"
tarfileset dir="${final.dir}/.."
include name="${final.name}/**"/
exclude name="**/.cvsignore"/
/tarfileset
/tar
gzip zipfile="${top.dir}/${project}-${version}.tar.gz" src="${top.dir}/${project}-${version}.tar"/
/target
!-- Packages the distribution with ZIP and TAG-GZIP --
target name="package-all" depends="package-zip, package-tgz"
/target
!-- Makes an attempt to clean up a little. --
target name="clean"
description="Removes generated artifacts from source tree."
delete dir="${build.dest}"/
delete dir="${javadoc.destdir}"/
delete dir="${final.dir}"/
delete file="${top.dir}/${final.name}.jar"/
delete file="${top.dir}/${final.name}.tar"/
delete file="${top.dir}/${final.name}.tar.gz"/
delete file="${top.dir}/${final.name}.zip"/
delete
fileset dir="${top.dir}" includes="velocity.log*"/
/delete
/target
/project
build.xml文件的编写可参见ant发行版中的使用文档
你也可以自己编写脚本打包,使用jdk发行版中的jar命令,例如:
#jar cmf myManifestFile myFile.jar *.class
注意还需要自己编写MANIFEST.MF文件配置包属性。具体可以参见javadoc
当然还可以使用集成开发环境提供的打包工具,如JBuilder提供打包工具,但这样程序的移植性不强,建议不要使用,就使用ant比较好。
关于javasplash和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。