콘텐츠로 이동

Class Gauge

package javax.microedition.lcdui

java.lang.Object
|
+--javax.microedition.lcdui.Item
|
+--javax.microedition.lcdui.Gauge

extends Item:

정수 값의 그래픽 디스플레이(예: 막대 그래프)를 구현합니다. Gauge는 0에서 최대값까지의 범위(포함)에 있는 현재 값을 포함합니다. 응용 프로그램은 현재 값과 최대값을 제어할 수 있습니다. 응용 프로그램에서 지정하는 값의 범위는 장치의 구분되는 시각적 상태 수보다 클 수 있으므로 두 개 이상의 값이 동일한 시각적 표현을 가져야 합니다.

예를 들어, 0에서 99까지의 값 범위를 갖는 Gauge 객체가 1-10개의 막대 집합을 사용하여 Gauge의 근사값을 표시하는 장치에서 실행 중인 경우를 가정합니다. 장치에서 한 개의 막대는 0-9의 값을 표시하고 두 개의 막대는 10-19의 값을, 세 개의 막대는 20-29의 값을 표시할 수 있습니다.

Gauge는 대화형이거나 비대화형일 수 있습니다. 응용 프로그램은 상호 작용 모드에 관계없이 언제든지 Gauge의 값을 설정하거나 검색할 수 있습니다. 객체가 대화형 모드로 만들어지는지 여부에 따라 구현 시 막대 그래프의 시각적 모양이 변경될 수 있습니다.

대화형 모드에서는 사용자가 값을 수정할 수 있습니다. 사용자는 언제든 해당 값을 위로나 아래로 1씩 변경할 방법이 있으며 보다 큰 증분으로 값을 변경하는 방법도 있습니다. 사용자는 설정된 범위를 벗어나는 값으로 이동할 수 없습니다. 따라서 응용 프로그램에서 초기 값을 설정한 다음 사용자가 그 이후 값부터 수정하도록 허용하는 것이 좋습니다. 사용자가 값과 상호 작용하고 있는 동안에도 응용 프로그램은 해당 값을 수정할 수 있습니다.

많은 경우 사용자가 값을 수정하는 유일한 방법은 버튼을 눌러 한 번에 한 단위씩 값을 늘리거나 줄이는 것입니다. 따라서 응용 프로그램은 몇 십 개를 넘지 않는 범위 내에서 지정해야 합니다.

비대화형 모드에서는 사용자가 값을 수정할 수 없습니다. 비대화형 모드는 사용자에게 오래 실행되는 작업 상태에 관한 피드백을 제공하기 위해 사용됩니다. 비대화형 모드는 주로 오래 실행되는 작업 중에 사용자에게 피드백을 제공하는 “진행 표시기”나 “작업 표시기”로 사용됩니다. 응용 프로그램은 setValue() 메소드를 사용하여 주기적으로 값을 업데이트할 수 있습니다.

비대화형 Gauge의 범위는 유한하거나 무한할 수 있습니다. Gauge의 범위가 유한하면 0과 응용 프로그램에서 설정한 최대값 사이의 정수 값(포함)을 가집니다. 구현 시에는 위에서 설명한 대로 이 값에 대한 그래픽 표현을 제공합니다.

무한 범위를 가지는 비대화형 Gauge는 계속 유휴 지속, 증분 유휴, 계속 실행, 증분 업데이트의 네 상태 중 하나에 있습니다. 이러한 상태는 작업의 특정 수준이 발생 중임을 사용자에게 알리는 것이 목적입니다. 증분 업데이트를 사용하는 경우 작업에 대해 알려진 종점이 없어도 진행 상태를 사용자에게 알릴 수 있습니다. 계속 실행을 사용하는 경우에는 사용자에게 보고할 진행이 없으며 알려진 종점이 없습니다. 계속 실행은 단지 사용 중임을 알리는 표시기입니다. 구현 시 이러한 내용을 적절하게 표시하는 그래픽 디스플레이를 사용해야 합니다. 구현 시 무한 지속 게이지와 무한 증분 게이지에 다양한 그래픽을 사용할 수 있습니다. 이러한 이유로 각 모드에 대해 별도의 유휴 상태가 존재합니다. 예를 들어, 구현 시 계속 실행 상태의 모래 시계나 회전 시계를 표시할 수 있지만 증분 업데이트 상태에서는 비치볼이나 줄무늬 막대 사탕 같은 다양한 상태의 애니메이션을 표시할 수 있습니다.

계속 유휴 상태나 증분 유휴 상태에서 Gauge는 아무 작업도 발생하지 않음을 나타냅니다. 증분 업데이트 상태에서 Gauge는 작업을 나타내지만 해당 그래픽 표현은 응용 프로그램에서 setValue()에 대한 호출을 사용하여 업데이트를 요청하는 경우에만 업데이트되어야 합니다. 계속 실행 상태에서 Gauge는 응용 프로그램으로부터의 업데이트 요청 없이도 계속 실행되는 애니메이션을 표시하여 작업을 나타냅니다.

Gauge가 비대화형이고 무한 범위를 갖도록 설정된 경우에만 CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNINGINCREMENTAL_UPDATING 값이 특별한 의미를 갖습니다. Gauge가 대화형이거나 유한 범위를 갖도록 설정된 경우 이러한 값은 일반 값으로 간주됩니다.

또한 Gauge를 진행 표시기로 사용하는 응용 프로그램은 일반적으로 사용자가 진행 중인 작업을 중단시킬 수 있는 Gauge를 포함하는 컨테이너에 STOP 명령을 연결해야 합니다.

응용 프로그램 개발자를 위한 참고 사항

섹션 제목: “응용 프로그램 개발자를 위한 참고 사항”

위에서 언급한 대로 오래 실행되는 작업 도중 사용자에게 피드백을 제공하기 위해 비대화형 Gauge가 사용될 수 있습니다. 응용 프로그램에서 이미 알려진 종점으로 진행할 때 작업의 진행을 관찰할 수 있는 경우 응용 프로그램은 유한 범위를 갖는 비대화형 Gauge를 사용해야 합니다. 예를 들어, 응용 프로그램에서 크기가 20KB로 알려진 파일을 다운로드한다고 가정합니다. 응용 프로그램은 Gauge의 최대값을 20으로 설정하고 게이지 값을 지금까지 다운로드한 KB로 설정합니다. 지정된 시간에 완료된 작업의 비율을 보여주는 Gauge가 사용자에게 제시됩니다.

반면 응용 프로그램에서 알 수 없는 크기의 파일을 다운로드하고 있는 경우 응용 프로그램은 유한 범위를 갖는 비대화형 Gauge를 사용해야 합니다. 응용 프로그램은 주기적으로(예를 들어 입력 버퍼가 채워질 때마다) setValue(INCREMENTAL_UPDATING)를 호출해야 합니다. 그러면 사용자에게 진행의 발생 비율을 표시할 수 있습니다.

마지막으로 응용 프로그램이 작업을 수행하지만 진행을 파악할 수 있는 방법이 없다면 비대화형 Gauge가 무한 범위를 갖도록 설정하고 값을 CONTINUOUS_RUNNING이나 CONTINUOUS_IDLE 중 하나로 설정해야 합니다. 예를 들어, 응용 프로그램에서 네트워크 서버에 요청을 발행하고 서버가 응답 대기하는 것을 차단하려는 경우 Gauge의 상태를 응답 대기 전에는 CONTINUOUS_RUNNING으로, 응답을 받은 다음에는 CONTINUOUS_IDLE로 설정해야 합니다.

Since:

  • MIDP 1.0
  • static int CONTINUOUS_IDLE — 무한 범위를 갖는 비대화형 Gauge 의 계속 유휴 상태를 나타내는 값.
  • static int CONTINUOUS_RUNNING — 무한 범위를 갖는 비대화형 Gauge 의 계속 실행 상태를 나타내는 값.
  • static int INCREMENTAL_IDLE — 무한 범위를 갖는 비대화형 Gauge 의 증분 유휴 상태를 나타내는 값.
  • static int INCREMENTAL_UPDATING — 무한 범위를 갖는 비대화형 Gauge 의 증분 업데이트 상태를 나타내는 값.
  • static int INDEFINITE — Gauge 가 무한 범위를 갖는다는 것을 나타내기 위해 최대값으로 특수 값이 사용되었습니다.
  • Gauge ( String label, boolean interactive, int maxValue, int initialValue) 대화형 모드나 비대화형 모드에서 지정된 최대값 및 초기 값을 사용하여 지정된 레이블을 갖는 새 Gauge 객체를 만듭니다.
  • int getMaxValue () — 이 Gauge 객체의 최대값을 가져옵니다.
  • int getValue () — 이 Gauge 객체의 현재 값을 가져옵니다.
  • boolean isInteractive () — 사용자가 Gauge 의 값을 변경할 수 있는지 여부를 알려줍니다.
  • void setMaxValue (int maxValue) — 이 Gauge 객체의 최대값을 설정합니다.
  • void setValue (int value) — 이 Gauge 객체의 현재 값을 설정합니다.
public static final int INDEFINITE

Since:

  • MIDP 2.0

See Also:

  • Constant Field Values
public static final int CONTINUOUS_IDLE

Since:

  • MIDP 2.0

See Also:

  • Constant Field Values
public static final int INCREMENTAL_IDLE

Since:

  • MIDP 2.0

See Also:

  • Constant Field Values
public static final int CONTINUOUS_RUNNING

Since:

  • MIDP 2.0

See Also:

  • Constant Field Values
public static final int INCREMENTAL_UPDATING

Since:

  • MIDP 2.0

See Also:

  • Constant Field Values
public Gauge(String label,
boolean interactive,
int maxValue,
int initialValue)
  • 대화형 모드나 비대화형 모드에서 지정된 최대값 및 초기 값을 사용하여 지정된 레이블을 갖는 새 Gauge 객체를 만듭니다. 대화형 모드(interactivetrue)에서 최대값은 0보다 커야 하며 그렇지 않으면 예외가 발생됩니다. 비대화형 모드(interactivefalse)에서 최대값은 0보다 크거나 특수 값 INDEFINITE과 같아야 하며 그렇지 않으면 예외가 발생됩니다.

최대값이 0보다 큰 경우 게이지는 유한 범위를 갖습니다. 이 경우 초기 값은 0-maxValue 범위(포함)에 있어야 합니다. 초기 값이 0보다 작은 경우 값은 0으로 설정됩니다. 초기 값이 maxValue 보다 큰 경우 maxValue로 설정됩니다.

interactivefalse이고 최대값이 INDEFINITE인 경우 무한 범위를 갖는 비대화형 게이지가 만들어집니다. 초기 값은 CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING 중 하나여야 합니다.

Parameters:

  • initialValue - [0..maxValue] 범위의 초기 값, 또는 maxValueINDEFINITE인 경우 CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING 중 하나

Throws:

  • IllegalArgumentException - 무한 범위를 갖는 비대화형 게이지에 대해 initialValue가 CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING 중 하나가 아닌 경우

See Also:

  • INDEFINITE, CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING
public void setValue(int value)

Parameters:

  • value - 새 값

Throws:

  • IllegalArgumentException - 무한 범위를 갖는 비대화형 게이지에 대한 값이 CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING 중 하나가 아닌 경우

See Also:

  • CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING, getValue()
public int getValue()

Returns:

  • Gauge의 현재 값

See Also:

  • CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING, setValue(int)
public void setMaxValue(int maxValue)

Parameters:

  • maxValue - 새 최대값

Throws:

  • IllegalArgumentException - masValue가 유효하지 않은 경우

See Also:

  • INDEFINITE, getMaxValue()
public int getMaxValue()

Returns:

  • Gauge의 최대값, 또는 INDEFINITE

See Also:

  • INDEFINITE, setMaxValue(int)
public boolean isInteractive()

Returns:

  • Gauge가 대화형인지 여부를 나타내는 부울
public Gauge(String label,
boolean interactive,
int maxValue,
int initialValue)
  • 대화형 모드나 비대화형 모드에서 지정된 최대값 및 초기 값을 사용하여 지정된 레이블을 갖는 새 Gauge 객체를 만듭니다. 대화형 모드(interactivetrue)에서 최대값은 0보다 커야 하며 그렇지 않으면 예외가 발생됩니다. 비대화형 모드(interactivefalse)에서 최대값은 0보다 크거나 특수 값 INDEFINITE과 같아야 하며 그렇지 않으면 예외가 발생됩니다.

최대값이 0보다 큰 경우 게이지는 유한 범위를 갖습니다. 이 경우 초기 값은 0-maxValue 범위(포함)에 있어야 합니다. 초기 값이 0보다 작은 경우 값은 0으로 설정됩니다. 초기 값이 maxValue 보다 큰 경우 maxValue로 설정됩니다.

interactivefalse이고 최대값이 INDEFINITE인 경우 무한 범위를 갖는 비대화형 게이지가 만들어집니다. 초기 값은 CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING 중 하나여야 합니다.

Parameters:

  • initialValue - [0..maxValue] 범위의 초기 값, 또는 maxValueINDEFINITE인 경우 CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING 중 하나

Throws:

  • IllegalArgumentException - 무한 범위를 갖는 비대화형 게이지에 대해 initialValue가 CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING 중 하나가 아닌 경우

See Also:

  • INDEFINITE, CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING
public void setValue(int value)

Parameters:

  • value - 새 값

Throws:

  • IllegalArgumentException - 무한 범위를 갖는 비대화형 게이지에 대한 값이 CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING 중 하나가 아닌 경우

See Also:

  • CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING, getValue()
public int getValue()

Returns:

  • Gauge의 현재 값

See Also:

  • CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING, setValue(int)
public void setMaxValue(int maxValue)

Parameters:

  • maxValue - 새 최대값

Throws:

  • IllegalArgumentException - masValue가 유효하지 않은 경우

See Also:

  • INDEFINITE, getMaxValue()
public int getMaxValue()

Returns:

  • Gauge의 최대값, 또는 INDEFINITE

See Also:

  • INDEFINITE, setMaxValue(int)
public boolean isInteractive()

Returns:

  • Gauge가 대화형인지 여부를 나타내는 부울
public void setValue(int value)

Parameters:

  • value - 새 값

Throws:

  • IllegalArgumentException - 무한 범위를 갖는 비대화형 게이지에 대한 값이 CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING 중 하나가 아닌 경우

See Also:

  • CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING, getValue()
public int getValue()

Returns:

  • Gauge의 현재 값

See Also:

  • CONTINUOUS_IDLE, INCREMENTAL_IDLE, CONTINUOUS_RUNNING, INCREMENTAL_UPDATING, setValue(int)
public void setMaxValue(int maxValue)

Parameters:

  • maxValue - 새 최대값

Throws:

  • IllegalArgumentException - masValue가 유효하지 않은 경우

See Also:

  • INDEFINITE, getMaxValue()
public int getMaxValue()

Returns:

  • Gauge의 최대값, 또는 INDEFINITE

See Also:

  • INDEFINITE, setMaxValue(int)
public boolean isInteractive()

Returns:

  • Gauge가 대화형인지 여부를 나타내는 부울