⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settings.java

📁 J2ME MIDP_Example_Applications
💻 JAVA
字号:
// Copyright 2003 Nokia Corporation.
//
// THIS SOURCE CODE IS PROVIDED 'AS IS', WITH NO WARRANTIES WHATSOEVER,
// EXPRESS OR IMPLIED, INCLUDING ANY WARRANTY OF MERCHANTABILITY, FITNESS
// FOR ANY PARTICULAR PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE
// OR TRADE PRACTICE, RELATING TO THE SOURCE CODE OR ANY WARRANTY OTHERWISE
// ARISING OUT OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE AND WITH NO
// OBLIGATION OF NOKIA TO PROVIDE THE LICENSEE WITH ANY MAINTENANCE OR
// SUPPORT. FURTHERMORE, NOKIA MAKES NO WARRANTY THAT EXERCISE OF THE
// RIGHTS GRANTED HEREUNDER DOES NOT INFRINGE OR MAY NOT CAUSE INFRINGEMENT
// OF ANY PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OWNED OR CONTROLLED
// BY THIRD PARTIES
//
// Furthermore, information provided in this source code is preliminary,
// and may be changed substantially prior to final release. Nokia Corporation
// retains the right to make changes to this source code at
// any time, without notice. This source code is provided for informational
// purposes only.
//
// Nokia and Nokia Connecting People are registered trademarks of Nokia
// Corporation.
// Java and all Java-based marks are trademarks or registered trademarks of
// Sun Microsystems, Inc.
// Other product and company names mentioned herein may be trademarks or
// trade names of their respective owners.
//
// A non-exclusive, non-transferable, worldwide, limited license is hereby
// granted to the Licensee to download, print, reproduce and modify the
// source code. The licensee has the right to market, sell, distribute and
// make available the source code in original or modified form only when
// incorporated into the programs developed by the Licensee. No other
// license, express or implied, by estoppel or otherwise, to any other
// intellectual property rights is granted herein.


import java.util.*;
import javax.microedition.rms.*;


// The 'Game Settings' are kept in the persistent record store,
// so they are remembered when the user exits the game
// and restarts it at a later time.

class Settings
{
    private final static int USE_VIBRATION = 1;
    private final static int USE_SOUND = 2;
    private final static int TRUE = 0; // bytes[TRUE] = 'T'
    private final static int FALSE = 1; // bytes[FALSE] = 'F'
    private final static byte[] bytes = { 'T', 'F' };

    private static RecordStore rs = null;


    private Settings()
    {
        // no one else may instantiate us
    }


    private static void openRecordStore()
        throws RecordStoreException
    {
        if (rs == null)
        {
          rs = RecordStore.openRecordStore("Settings", true);
        }

        if (rs.getNumRecords() == 0)
        {
            // save a default value for USE_VIBRATION in the record store
            rs.addRecord(bytes, TRUE, 1);

            // save a default value for USE_SOUND in the record store
            rs.addRecord(bytes, TRUE, 1);
        }
    }


    private static void closeRecordStore()
        throws RecordStoreException
    {
        if (rs != null)
        {
            rs.closeRecordStore();
            rs = null;
        }
    }


    static boolean getUseVibration()
    {
        try
        {
            // read the saved value from the record store
            boolean bool = getValue(Settings.USE_VIBRATION);
            return bool;
        }
        catch (Exception e)
        {
            return false;
        }
    }


    static boolean getUseSound()
    {
        try
        {
            // read the saved value from the record store
            boolean bool = getValue(Settings.USE_SOUND);
            return bool;
        }
        catch (Exception e)
        {
            return false;
        }
    }


    static void setUseVibration(boolean bool)
    {
        try
        {
            // save the value persistently in the record store
            setValue(Settings.USE_VIBRATION, bool);
        }
        catch (Exception e)
        {
            // We can not do anything to recover from this error,
            // let the game proceed without using saved settings.
        }
    }


    static void setUseSound(boolean bool)
    {
        try
        {
            // save the value persistently in the record store
            setValue(Settings.USE_SOUND, bool);
        }
        catch (Exception e)
        {
            // We can not do anything to recover from this error,
            // let the game proceed without using saved settings.
        }
    }


    private static void setValue(int id, boolean bool)
        throws RecordStoreException
    {
        openRecordStore();

        if ((id != USE_VIBRATION) && (id != USE_SOUND))
        {
            throw new IllegalArgumentException(
                "Settings.set - invalid id: " + id);
        }
        else
        {
            if (bool)
            {
                rs.setRecord(id, bytes, TRUE, 1);
            }
            else
            {
                rs.setRecord(id, bytes, FALSE, 1);
            }
        }

        closeRecordStore();
    }


    private static boolean getValue(int id)
        throws RecordStoreException
    {
        openRecordStore();

        boolean bool = false; // default value

        if ((id != USE_VIBRATION) && (id != USE_SOUND))
        {
            closeRecordStore();
            throw new IllegalArgumentException(
                "Settings.get - invalid id: " + id);
        }
        else
        {
            byte[] barray = rs.getRecord(id);
            if ((barray != null) && (barray.length == 1))
            {
                bool = (barray[0] == bytes[TRUE]);
            }
        }

        closeRecordStore();

        return bool;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -