100个java程序员99个不会的问题!!

lelecly 2007-08-18 02:35:56
用java的awt包或swing包做出来的画面实在是不敢恭维,因此大家有没有考虑过在java图形化界面中插入flash的,那样做出来的画面肯定很cool!
但是我也不知道怎样插入!
大家有什么好的想法么?
...全文
412 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ranshaoweng 2007-08-21
  • 打赏
  • 举报
回复
发这贴的人对JAVA了解不深,请原谅这小伙子,对一个无知少年请大家多担待
shengli_liao 2007-08-20
  • 打赏
  • 举报
回复
java程序Swing/Awt
提供皮肤扩展的功能,感觉还是挺好的
VB作出的东西,说实话,我还真没看出好看来
可能真是审美观不同
zygege 2007-08-20
  • 打赏
  • 举报
回复
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
public class Snippet141 {
static Display display;
static Shell shell;
static GC shellGC;
static Color shellBackground;
static ImageLoader loader;
static ImageData[] imageDataArray;
static Thread animateThread;
static Image image;
static final boolean useGIFBackground = false;
public static void main(String[] args) {
display = new Display();
shell = new Shell(display);
shell.setSize(300, 300);
shell.open();
shellGC = new GC(shell);
shellBackground = shell.getBackground();
FileDialog dialog = new FileDialog(shell);
dialog.setFilterExtensions(new String[] {"*.gif"});
String fileName = dialog.open();
if (fileName != null) {
loader = new ImageLoader();
try {
imageDataArray = loader.load(fileName);
if (imageDataArray.length > 1) {
animateThread = new Thread("Animation") {
public void run() {
/* Create an off-screen image to draw on, and fill it with the shell background. */
Image offScreenImage = new Image(display, loader.logicalScreenWidth, loader.logicalScreenHeight);
GC offScreenImageGC = new GC(offScreenImage);
offScreenImageGC.setBackground(shellBackground);
offScreenImageGC.fillRectangle(0, 0, loader.logicalScreenWidth, loader.logicalScreenHeight);
try {
/* Create the first image and draw it on the off-screen image. */
int imageDataIndex = 0;
ImageData imageData = imageDataArray[imageDataIndex];
if (image != null && !image.isDisposed()) image.dispose();
image = new Image(display, imageData);
offScreenImageGC.drawImage(
image,
0,
0,
imageData.width,
imageData.height,
imageData.x,
imageData.y,
imageData.width,
imageData.height);
/* Now loop through the images, creating and drawing each one
* on the off-screen image before drawing it on the shell. */
int repeatCount = loader.repeatCount;
while (loader.repeatCount == 0 || repeatCount > 0) {
switch (imageData.disposalMethod) {
case SWT.DM_FILL_BACKGROUND:
/* Fill with the background color before drawing. */
Color bgColor = null;
if (useGIFBackground && loader.backgroundPixel != -1) {
bgColor = new Color(display, imageData.palette.getRGB(loader.backgroundPixel));
}
offScreenImageGC.setBackground(bgColor != null ? bgColor : shellBackground);
offScreenImageGC.fillRectangle(imageData.x, imageData.y, imageData.width, imageData.height);
if (bgColor != null) bgColor.dispose();
break;
case SWT.DM_FILL_PREVIOUS:
/* Restore the previous image before drawing. */
offScreenImageGC.drawImage(
image,
0,
0,
imageData.width,
imageData.height,
imageData.x,
imageData.y,
imageData.width,
imageData.height);
break;
}
imageDataIndex = (imageDataIndex + 1) % imageDataArray.length;
imageData = imageDataArray[imageDataIndex];
image.dispose();
image = new Image(display, imageData);
offScreenImageGC.drawImage(
image,
0,
0,
imageData.width,
imageData.height,
imageData.x,
imageData.y,
imageData.width,
imageData.height);
/* Draw the off-screen image to the shell. */
shellGC.drawImage(offScreenImage, 0, 0);
/* Sleep for the specified delay time (adding commonly-used slow-down fudge factors). */
try {
int ms = imageData.delayTime * 10;
if (ms < 20) ms += 30;
if (ms < 30) ms += 10;
Thread.sleep(ms);
} catch (InterruptedException e) {
}
/* If we have just drawn the last image, decrement the repeat count and start again. */
if (imageDataIndex == imageDataArray.length - 1) repeatCount--;
}
} catch (SWTException ex) {
System.out.println("There was an error animating the GIF");
} finally {
if (offScreenImage != null && !offScreenImage.isDisposed()) offScreenImage.dispose();
if (offScreenImageGC != null && !offScreenImageGC.isDisposed()) offScreenImageGC.dispose();
if (image != null && !image.isDisposed()) image.dispose();
}
}
};
animateThread.setDaemon(true);
animateThread.start();
}
} catch (SWTException ex) {
System.out.println("There was an error loading the GIF");
}
}
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
}
wcw19861217 2007-08-20
  • 打赏
  • 举报
回复
怎莫还有人骂人呢!bs,即使有水平!
lelecly 2007-08-20
  • 打赏
  • 举报
回复
对,一楼批评的是!下次我说话的时候一定会加个 “本人以为” 这几个字!
不过在我认为“swt和swing相跟用vb做出来的程序比确实是有点差距!”
希望大家能给个好点子,考虑一下怎样在java中插入flash动画!
hiuiuf 2007-08-20
  • 打赏
  • 举报
回复
个人审美观不同而已,大家都各有各的的爱好嘛。不过加flash到是不过的提议,比如在界面出来前先来个欢迎动画好象也不错,要是有高手做过的话,希望能指点下咯。。。。。。
gaotianle 2007-08-20
  • 打赏
  • 举报
回复
我觉得AWT/Swing做出来的界面很好看啊 不知道搂主的审美观是不是太与众不同了
J_separator 2007-08-19
  • 打赏
  • 举报
回复
呵呵,有意思...
insiku 2007-08-18
  • 打赏
  • 举报
回复
这种"人"
就是吃大便出生的
满脑子大便
shengli_liao 2007-08-18
  • 打赏
  • 举报
回复
用java的awt包或swing包做出来的画面实在是不敢恭维
======================
说这种话不觉得没水准吗?
没有调查就乱发言
你可以看看现在有多少系统基于AWT/Swing

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧