java里面有没有直接操控显示缓冲的方法呢? 我希望能做到好象其他普通语言那样, 搞个double buffer什么的, 不用setpixel()类似的办法去一个点一个点去画, 而是直接对一块内存一个单元一个单元自己赋值, 想在什么时候显示这块内存就在什么时候显示.swing, awt什么都可以, 越老越好.不想接触高级,时尚的东西.谢谢啦. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接操作内存被java认为是不安全的 估计是无法实现的 那么java通常用什么方式来做一段动画呢? 如果速度要求高. 这估计要修改特定的JVM才能实现; 那么java如何显示一张图呢? 就那么简单,大牛, 请赐予我力量 java显示一张图还不简单么?一个例子import javax.swing.*; import java.awt.*; import java.net.*; public class JSplashWindow extends JWindow implements Runnable { Thread splashThread=null; public JSplashWindow() { setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//设置启动界面的光标样式 JPanel splash=new JPanel(new BorderLayout()); URL url=getClass().getResource("1.jpg");//获得指定资源文件的绝对路径。 if(url!=null) { splash.add(new JLabel(new ImageIcon(url)),BorderLayout.CENTER); } setContentPane(splash); Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();//获得屏幕的大小 pack(); setLocation((screen.width-getSize().width)/2,(screen.height-getSize().height)/2);//使启动窗口居中显示 start(); } public void start() { toFront();//window类的toFront()方法可以让启动界面显示的时候暂时在最前面,用window类的setAlwayOnTop(boolean)方法可以让窗口总保持在最前面。 splashThread=new Thread(this); splashThread.start(); } public void run() { try { setVisible(true); Thread.sleep(50000); } catch(Exception e) { e.printStackTrace(); } dispose(); } static void showFrame(String title) { JFrame frame=new JFrame(title); frame.setSize(400,300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension screenSize=frame.getToolkit().getScreenSize();//获得屏幕的大小 Dimension frameSize=frame.getSize(); if(frameSize.height>screenSize.height) { frameSize.height=screenSize.height; } if(frameSize.width>screenSize.width) { frameSize.width=screenSize.width; } frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); frame.setVisible(true); } public static void main(String[] args) { showFrame("Demo splash window"); JSplashWindow splash=new JSplashWindow(); //splash.start(); } } /*getToolkit()方法是java.awt.window类的方法它可以得到一个Toolkit类。Toolkit对象的getScreenSize()方法可以得到屏幕的大小。 getScreenSize()方法返回一个 Dimension对象,它的width,height属性就是屏幕的宽和高。 Object getClass()方法是java.lang.Object类的方法它可以获得当前正在运行类的对象 URL getResource(String name)方法是java.lang.Class类的方法用此方法可以获得一个指定资源文件的绝对路径。*/ 看来确实没有办法搞double buffer.那岂非显示动画龟慢? 下班之前终于找到办法, 简单得就两三句话, 不足一提.我的blog 关于java中绘图的问题 【线程】大家来看看如何加锁? 如何求出两个日期中的差值? 真的是错了! Java循环问题 求一款适用于初学者的Java中文版编译器 救命啊!谁帮我写一个getTable() 函数将查询结果返回到tA1! java programing language 这本书怎么样,是java之父写的 try-catch-finally的return 好混乱~~~ 谢谢大家!!散分!!兄弟们接分!! 数组元素 计算 最小公倍数,最大公约数
一个例子import javax.swing.*;
import java.awt.*;
import java.net.*;
public class JSplashWindow extends JWindow implements Runnable
{
Thread splashThread=null;
public JSplashWindow()
{
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//设置启动界面的光标样式
JPanel splash=new JPanel(new BorderLayout());
URL url=getClass().getResource("1.jpg");//获得指定资源文件的绝对路径。
if(url!=null)
{
splash.add(new JLabel(new ImageIcon(url)),BorderLayout.CENTER);
}
setContentPane(splash);
Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();//获得屏幕的大小
pack();
setLocation((screen.width-getSize().width)/2,(screen.height-getSize().height)/2);//使启动窗口居中显示
start();
}
public void start()
{
toFront();//window类的toFront()方法可以让启动界面显示的时候暂时在最前面,用window类的setAlwayOnTop(boolean)方法可以让窗口总保持在最前面。
splashThread=new Thread(this);
splashThread.start();
}
public void run()
{
try
{
setVisible(true);
Thread.sleep(50000);
}
catch(Exception e)
{
e.printStackTrace();
}
dispose();
}
static void showFrame(String title)
{
JFrame frame=new JFrame(title);
frame.setSize(400,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension screenSize=frame.getToolkit().getScreenSize();//获得屏幕的大小
Dimension frameSize=frame.getSize();
if(frameSize.height>screenSize.height)
{
frameSize.height=screenSize.height;
}
if(frameSize.width>screenSize.width)
{
frameSize.width=screenSize.width;
}
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
}
public static void main(String[] args)
{
showFrame("Demo splash window");
JSplashWindow splash=new JSplashWindow();
//splash.start();
}
}
/*getToolkit()方法是java.awt.window类的方法它可以得到一个Toolkit类。Toolkit对象的getScreenSize()方法可以得到屏幕的大小。
getScreenSize()方法返回一个 Dimension对象,它的width,height属性就是屏幕的宽和高。
Object getClass()方法是java.lang.Object类的方法它可以获得当前正在运行类的对象
URL getResource(String name)方法是java.lang.Class类的方法用此方法可以获得一个指定资源文件的绝对路径。*/
那岂非显示动画龟慢?