题目:编写一个不同界面的风格的显示。
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