题目:编写一个不同界面的风格的显示。
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.applet.*;
import javax.swing.*;
/*
* A very simple applet.
*/
public class LookAndFeelDemo extends JApplet {
JButton button;
public void init() {
// 更换注释的内容可以改变界面风格
//String laf ="com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
//String laf ="com.sun.java.swing.plaf.motif.MotifLookAndFeel";
String laf ="javax.swing.plaf.metal";
try {
UIManager.setLookAndFeel(laf);
} catch (UnsupportedLookAndFeelException exc) {
System.err.println("Warning: UnsupportedLookAndFeel: " + laf);
} catch (Exception exc) {
System.err.println("Error loading " + laf + ": " + exc);
}
getContentPane().setLayout(new FlowLayout());
button = new JButton("<html><body>Hello, <br>I'm a Swing Button!<br>"+
"You can see different styles!</body></html>");
getContentPane().add(button);
}
public void stop() {
if (button != null) {
getContentPane().remove(button);
button = null;
}
}
}
loadNibNamed:owner:options: 这个函数会返回一个nib的数组。不过,在iPhone2.1包括以后的版本,这个数组的第一个元素,即nib[0]表示的就是除了File‘s Owner 和 File Responder后的第一个东西。在iPhon2.1之前的版本,nib[0]是File's Owner,nib[1]才是除了File‘s Owner 和 File Responder后的第一个东西。特别注意一下^_^
所以要loop那个nib[]数组, 然后用isclasstype of来检测... APPLE真是挫~~~
不用这么麻烦,可以简单点,好象不同版本的iPhone SDK,定义个宏就OK了.
所以要loop那个nib[]数组, 然后用isclasstype of来检测... APPLE真是挫~~~
不用这么麻烦,可以简单点,好象不同版本的iPhone SDK,定义个宏就OK了.
也对... 我对Obj-C,C,C++还是比较陌生的... 继续摸索
我们在开发流媒体播放器的时候,可能会遇到这样子的问题,如:打开大文件(一般大于700k)将其转化为流,再使用其流创建player的时候,在s40这样子的机子上面会报OutOfMemory。
解决办法:
(一):分段读取
将大文件分成小段读取,然后用小段文件来创建。
/**
* 获取部分本地歌曲文件
* @return byte[]
*/
private synchronized byte[] getPartBytes() {
try {
if (dis == null) {
return null;
}
int bufferLength = PER_READ_LOCAL_LENGTH;
if (totalSize < offset + PER_READ_LOCAL_LENGTH) {
bufferLength = (int) (totalSize - offset);
}
byte[] buffer = new byte[bufferLength];
try {
// dis.skip(offset);
//自己写的skip(),系统提供的效率太低
// skip(dis, offset);
int p = dis.read(buffer, 0, bufferLength);
if (p != -1) {
offset += p;
}
} catch (IOException ex) {
}
return buffer;
} catch (Exception ex1) {
return null;
} finally {
if (offset >= totalSize) {
try {
if (dis != null) {
dis.close();
}
fs.close();
} catch (IOException ex2) {
}
}
}
}
(二),在jad中增加标识也可以解决,但是也会存在一些问题。
修改jad:
Nokia:
progressive_download: enabled
Sony:
progressive_download: enable
相关文章,可以参考:
官方:
http://wiki.forum.nokia.com/index.php/KIJ000449_-_Playing_large_audio_files_by_using_InputStream_throws_an_OutOfMemoryError
Nokia论坛:
http://discussion.forum.nokia.com/forum/showthread.php?t=95500