「Java使用splash」Java使用什么语句结构捕获异常

博主:adminadmin 2022-12-29 02:00:09 68

今天给各位分享Java使用splash的知识,其中也会对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

如何实现微信的splash界面

启动界面Splash Screen在应用程序是很常用的,往往在启动界面中显示产品Logo、公司Logo或者开发者信息,如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间。

Android 应用程序创建一个启动界面Splash Screen非常简单。比如创建一个工程MySample,主Acitity就叫MySample,创建另一个Activity叫 SplashScreen,用于显示启动界面,资源文件为splash.xml。至于如何制作SplashSceen界面,这不是本文章要讨论的东西,就此略过。

SplashScreen的代码如下:

package com.ctoof.android;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.MotionEvent;

public class SplashScreen extends Activity {

protected boolean _active = true;

protected int _splashTime = 5000;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.splash);

Thread splashTread = new Thread() {

@Override

public void run() {

try {

int waited = 0;

while(_active (waited _splashTime)) {

sleep(100);

if(_active) {

waited += 100;

}

}

} catch(InterruptedException e) {

// do nothing

} finally {

finish();

// 启动主应用

startActivity(new Intent("com.ctoof.android.MySample.MyApp"));

stop();

}

}

};

splashTread.start();

}

@Override

public boolean onTouchEvent(MotionEvent event) {

if (event.getAction() == MotionEvent.ACTION_DOWN) {

_active = false;

}

return true;

}

}

然后在AndroidMainfest.xml中修改代码如下:

?xml version="1.0" encoding="utf-8"?

manifest xmlns:android=""

package="com.ctoof.android"

android:versionCode="1"

android:versionName="1.0"

application android:icon="@drawable/icon" android:label="@string/app_name"

activity android:name=".SplashScreen"

android:label="@string/app_name"

intent-filter

action android:name="android.intent.action.MAIN" /

category android:name="android.intent.category.LAUNCHER" /

/intent-filter

/activity

activity android:name=".MyApp"

intent-filter

action android:name=" com.ctoof.android. MySample.MyApp " /

category android:name="android.intent.category.DEFAULT" /

/intent-filter

/activity

/application

uses-sdk android:minSdkVersion="4" /

/manifest

在这里负责注册两个活动。把负责管理启动界面Splash Screen的活动Activity作为应用程序的主活动,然后在SplashScreen中负责启动MyApp。

另:

很多应用都会有一个启动界面。欢迎画面慢慢隐现,然后慢慢消隐。实现这种效果的方法有两种(暂时只发现两种)

1、使用两个Activity,程序启动时候load第一张Activity,然后由tick触发N秒钟后startActivity另外一张Activity。

2、使用一个Activity,可以用到View.gone() 这个方法。把Acitivity的某些元素移除。

Java代码

public class Splash extends Activity {

private final int SPLASH_DISPLAY_LENGHT = 3000; //延迟三秒

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.splash);

new Handler().postDelayed(new Runnable(){

@Override

public void run() {

Intent mainIntent = new Intent(Splash.this,Main.class);

Splash.this.startActivity(mainIntent);

Splash.this.finish();

}

}, SPLASH_DISPLAY_LENGHT);

}

}

当然可以再Splash中加入动画效果。

java SplashScreen类问题

可以使用jdk6.0中的 -splash选项直接指定一副图片作为闪屏,格式为:java -splash:splash图片文件的路径 Mainclass文件

如果要交互可以参考

关于Java使用splash和Java使用什么语句结构捕获异常的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-29,除非注明,否则均为首码项目网原创文章,转载请注明出处。