JEvaHz Messages 1393-1405

about contact links home tools todo search

About image scrolling using Panel



From: mayumi_sawahata
Sent: Tuesday, September 04, 2001 2:47 PM
Subject: [JavaHz:1393] Panel での画面スクロールについて
About image scrolling using Panel

はじめまして。澤畠と申します。
How do you do.  My name is Sawahata.

iアプリで、Panelクラスを使用して、コンポーネント(Label,TextBox)
でテキストを表示するプログラムを作成しています。
しかし、一画面に表示する情報が多く、行数が画面からはみ出
してしまい、P503is では画面のスクロールが出来ず困っています。

I'm making an iAppli that displays text using components
(Label, TextBox) from a Panel class.
However, I'm having problems not being able to scroll
the image on a p503iS; and in one image in which there's a
lot of information displayed, there are some lines
sticking out past the end of the image.

N503i では問題なくスクロール出来たのですが…。
これは機種依存なのでしょうか?
今作成中のプログラムの対応機種がP503isな為、どうにか
スクロールさせる方法は無いかと思案中です。

I can scroll OK, no problem, on the N503i....
Is this maybe one of those device-dependencies?
I'm thinking that there's no way to do scrolling
that's compatible with the P503iS, for the program
I'm in the middle of writing.

どなたか、情報ある方いらっしゃいましたらご教示願います。

If anybody can help me, or has information about
this, I'd appreciate hearing about it.

−−−−−−−−−−−−−−−−−−−−−−−−−−−−
   澤畠真由美
   E-Mail:mayumi_sawahata@pis.hitachi.co.jp



From: "Hida Yoshiyuki"
Sent: Tuesday, September 04, 2001 3:07 PM
Subject: [JavaHz:1394] RE: Panel での画面スクロールについて
About image scrolling using Panel

樋田といいます。

My name's Hida.

私もPでテストをしていましたが、スクロールしないようですね。
String配列でデータを持って、UP、DOWNキーイベントを拾って
1行ずつ添え字をずらしながらsetTextで張替えをやっています。
矢印のガイドが表示されないのでGif作ったもんかなと悩み中です。
他にどなたか上手い方法をご存知の方はいませんかね。

I'm also testing on the "P" and, yes, it seems it doesn't
scroll.  It has a string array, it's picking up the UP/DOWN
key events, while each line of arranged characters is
being staggered [???] I'm naming them with setText.  Because
the indicator arrow isn't displayed, I worry whether
maybe it has made a GIF [???].  Is there anybody
else who knows of a good way to do this?



From: takaichi-hashi
Sent: Tuesday, September 04, 2001 4:04 PM
Subject: [JavaHz:1395] Re: Panel での画面スクロールについて
About image scrolling using Panel

端と申します。

My name's Hashi.

画面のスクロールという部分で2通りの意味が取れるので、
両方についてコメントします。

Because there are two meanings taken for "image
scrolling", I'll comment about both.

1つめは、Panel上にコンポーネントを置いていったときに、各コンポーネントに
フォーカスが当たりながらPanel全体がスクロールするという意味。

In the first kind, when a component has been placed on a Panel,
has the meaning of scrolling the entire body of the Panel
when the focus is on any single component.

Panel上ではコンポーネントはadd()した順に表示され、
フォーカスも順に移動します。

On the Panel, components are displayed in "add()" order
and the focus also moves in that sequence.

ただしPanelのレイアウトマネージャーを無効にして、コンポーネントを
setLocation()で配置するした場合、スクロールするかどうかは機種依存です。
ただ、Sunはスクロールはしてはいけないと言っているようです。

However, in the case where the Panel layout manager is
not operating and setLocation() is used to arrange components,
whether it will scroll or not is device-dependent.
Sun is basically saying that you shouldn't scroll [in this case].

あいにくどの機種がスクロールするかという情報を正確に持っていませんが、
私の場合、極力全機種で見れるようにという考えで作成していたので、
レイアウトマネージャーを有効にしたままに
(setLocateionを使わずに)していました。

Unfortunately, I don't have verified information about what
devices scroll, but in my case, because I was implementing
with the idea being able to see [???] all devices as much
as possible, I did everything without using setLocation,
and with the layout manager available by default [???].

あと、Labelにフォーカスが当たらないので、
TextBoxを使っているPanel上では、
1行の表示でもTextBoxを使っていました。

Afterward, because the focus didn't fall on the Label,
with the Panel on which TextBox was being used,
even just to display a single line, I was using
TextBox.

2つめは、TextBoxにフォーカスが当たっているときに、
TextBox内の文字がスクロールするかしないかという意味。
(おそらく樋田さんはこちらの意味で書いていると思うのですが、
間違っていたらすみません)

In the second [sense of scrolling], when the focus
was falling on the TextBox, you have the meaning
of "whether or not to scroll the characters IN the TextBox."
(Perhaps Hida was writing about this meaning, I think;
sorry if I'm mistaken.)

こちらの場合、i-Jadeでの振る舞いしか知らないのですが、
P、Psだけスクロールしませんでした。
この2機種についてはTextBoxを選択して、編集画面に移動しないと
全部の文字が見れません。
表示文字が変えられないように、ComponentListenerで
TEXT_CHANGEDイベントを拾って、setText( default_String ) として、
編集されても元に戻すようにしていました。

In this case, I don't know if i-Jade behaves properly,
but the P and Ps don't scroll.
With these two devices, if you select the text box,
and don't move to the editing image, none of the characters
appear.
In order to keep the displayed characters from changing,
pick up a TEXT_CHANGED event using ComponentListener,
do a setText ( default_String ), and even when it's
edited it will go back to what it looked like before. [???]

P、Psだけスクロールしないのは最初困ったのですが、
P、Ps以外の場合、別のコンポーネントにフォーカスを移動させようとしても、
TextBoxの文字列をすべてスクロールさせないとフォーカスが移動しないので、
逆に不便かなと思いました。

I was bothered at first the only the P and Ps didn't scroll,
but even in the case of others, if you are going to move the
focus to separate components, if you are not going to scroll all
the characters in a TextBox, the focus won't move, so
I wonder if it's really so inconvenient.

私も皆さんがどのように対処しているのか、興味がありますね。

I'm also interested in what others have been doing to
handle this.



From: mayumi_sawahata
Sent: Tuesday, September 04, 2001 5:15 PM
Subject: [JavaHz:1396] Re: Panel での画面スクロールについて
About image scrolling using Panel

澤畠です。

Sawahata here.

樋田さん、端さん。早速回答下さいましてありがとうございます。
やはり、Pはスクロールしないのでしょうか。

Hida, Hashi - thanks so much for your quick reply.
So the P really doesn't scroll after all?!

>樋田さん
>String配列でデータを持って、UP、DOWNキーイベントを拾って
>1行ずつ添え字をずらしながらsetTextで張替えをやっています。


> Hida
> It has a string array, it's picking up the UP/DOWN
> key events, while each line of arranged characters is
> being staggered [???] I'm naming them with setText.

これは、UP、DOWNキーイベント時に、Labelにデータを再度
セットし直して、再表示させると言う事ですよね?
やはり、そういう小細工をするしかないんでしょうか。

With this, when there's an UP/DOWN key event,
the data in the Label is fixed twice, and 
it's displayed twice, isn't it?  I wonder
if this isn't some little trick? [???]


>端さん。

[To Hashi:]

私の質問の書き方が曖昧でしたね。申し訳ありませんでした。

The way I wrote about this was ambiguous, wasn't it.  Sorry.

私のやりたかった事は、ひとつめの
「Panel上にコンポーネントを置いていったときに、各コンポーネントに
フォーカスが当たりながらPanel全体がスクロールする」
です。

What I wanted to do was case 1: "when a component has
been placed on a Panel, has the meaning of scrolling the
entire body of the Panel when the focus is on any single
component.

ただし、今回、コンポーネントは全てLabelとTextBox(入力できないよ
うにsetEnabledでユーザ操作不可にしています)
なので、フォーカスが当たらないため、スクロールしないのです。

However, this time, with all the Labels and TextBoxes of
the component (with setEnabled called so as to disable
user operations so that input is impossible), in order
that it doesn't have the focus, I don't scroll. [???]


>ただしPanelのレイアウトマネージャーを無効にして、コンポーネントを
>setLocation()で配置するした場合、スクロールするかどうかは機種依存です。

> However, in the case where the Panel layout manager is
> not operating and setLocation() is used to arrange components,
> whether it will scroll or not is device-dependent.

PanelのsetLayoutManagerを無効(Null)にすると機種依存でスクロール
が無効になると言う事ですよね。
setLayoutManagerは何も指定せずデフォルトのままです。
それに、Nでは問題なくスクロール出来ているため、やはりPの問題なの
かもしれません。

Setting Panel's setLayout manager to be ineffective (Null)
makes the device dependent scrolling inoperative, then. [???]
The default setting for setLayout manager is left as it was.
Further more, because the 'N' is able to scroll without problems,
it's a problem with the P after all, I guess.

簡単にスクロール出来る方法があれば一番なのですが、
機種依存でスクロール出来ないのであれば、プログラムで対応するか、
画面内に収まるように編集するか、再度検討してみます。

If there's some easy way you can scroll, that's the most important thing,
but if there's no device-independent way to scroll, 
I'd like to try again to see if there's a way to be
compatible in software, or if there can be editing in the
image somehow [???].

どなたか、さらに情報、アドバイス等あればよろしくお願い致します。

If there's anybody, and especially if there's information,
or advice about this, I'd really appreciate it.

−−−−−−−−−−−−−−−−−−−−−−−−−−−−
   澤畠真由美
   E-Mail:mayumi_sawahata@pis.hitachi.co.jp



From: "R.Matsumoto"
Sent: Tuesday, September 04, 2001 6:44 PM
Subject: [JavaHz:1397] Re: Panel での画面スクロールについて
About image scrolling using Panel

松本と申します。

My name is Matsumoto.

i-JADEでしか確認してないので、お役に立てるか
分かりませんが...

I haven't checked this in i-Jade, so I don't
know if I can be of any use here, but....

> 簡単にスクロール出来る方法があれば一番なのですが、
> 機種依存でスクロール出来ないのであれば、プログラムで対応するか、
> 画面内に収まるように編集するか、再度検討してみます。
> 
> どなたか、さらに情報、アドバイス等あればよろしくお願い致します。

> If there's some easy way you can scroll, that's the most important thing,
> but if there's no device-independent way to scroll, 
> I'd like to try again to see if there's a way to be
> compatible in software, or if there can be editing in the
> image somehow [???].
>
> If there's anybody, and especially if there's information,
> or advice about this, I'd really appreciate it.

Labelばかり並べてたので、(フォーカスが当たらず)
スクロールしてくれなかった、という同様の現象が
ありました。

Because this is just aligning Labels (they don't get focus)
because you can't give it scrolling, you'll get
identical behavior [???].

こんな感じの関数を作って、

Coding with this in mind:

 private final void _adds(Panel p, TextBox c){
  c.setSize(p.getWidth()-2, 0);
  c.setEditable(false);
  p.add(c);
 }

必要なところでこんな風に呼びました。

The most important thing is to call with something like this:

 _adds(p, new TextBox("", 1, 1, TextBox.DISPLAY_ANY));

高さ 0 のTextBoxを無理矢理貼り付けて、そこに
フォーカスを当ててしまえ、と考えました。

By forcing the attachment of a height-0 TextBox,
I think maybe the focus could be forced there.

ユーザにしてみれば、スクロールさせるために
余計な操作が必要ですが、一応の目的は
遂げられたのですが。

If the user tries this, in order to make it scroll,
too many operations are required, but I did it
as an experimental kludge.

ただ、コンポーネントの配置順によっては、上方向と
下方向で進み具合(画面上で表示される位置)が
揃わないこともあります。トレードオフですかね...

Depending on the order of the components, the state
of progress on the upper face and the downward face [???]
(the location it's displayed on the screen) can also
be left incomplete.  One of those trade-offs....



From: takaichi-hashi
Sent: Tuesday, September 04, 2001 7:17 PM
Subject: [JavaHz:1398] Re: Panel での画面スクロールについて
About image scrolling using Panel

端です。

Hashi here.

>ただし、今回、コンポーネントは全てLabelとTextBox(入力できないよ
>うにsetEnabledでユーザ操作不可にしています)
>なので、フォーカスが当たらないため、スクロールしないのです。

>However, this time, with all the Labels and TextBoxes of
>the component (with setEnabled called so as to disable
>user operations so that input is impossible), in order
>that it doesn't have the focus, I don't scroll. [???]

setEnabled(false)ではなくて、setEditable(false)にすれば、
フォーカスは当たり、かつ編集不可能になったと思います。
(自分のソースを見るとそうなっているので、大丈夫だと思います)

If you do setEditable(false) rather than setEnabled(false),
the focus will be gained and you don't have editability, I think.
(I look at my own source that's what happens, so I think it's OK.)

TextBoxを使うということは、複数行の文字列を表示したいということだと
思いますが、Labelにフォーカスが当たらないので、1行の文字列も
TextBoxにした方が良いと思います。

About using TextBox, though I think that you want to display
multiple lines of character strings, because Label doesn't get a focus,
I think it's better to have only one line of character string per TextBox.



From: "坂本 善隆" (yos-saka)
Sent: Wednesday, September 05, 2001 12:40 AM
Subject: Re: [JavaHz:1396] Re: Panel での画面スクロールについて
About image scrolling using Panel

 こんにちは。坂本です。

Hi.  Sakamoto here.

----- Original Message ----- 
From: mayumi_sawahata
Sent: Tuesday, September 04, 2001 5:15 PM
Subject: Panel での画面スクロールについて
About image scrolling using Panel


> 
> 澤畠です。
>
> ただし、今回、コンポーネントは全てLabelとTextBox(入力できないよ
> うにsetEnabledでユーザ操作不可にしています)
> なので、フォーカスが当たらないため、スクロールしないのです。

>
> Sawahata here.
>
> However, this time, with all the Labels and TextBoxes of
> the component (with setEnabled called so as to disable
> user operations so that input is impossible), in order
> that it doesn't have the focus, I don't scroll. [???]

何かを表示するだけであればCanvasを使ってはいかがでしょう?
Canvasを使っていないのには何か理由があっての事だろうと思いますが
高レベルUIの機種依存による挙動や、GUIの構成の違いなどを回避しよう
とすると、最悪機種ごとにプログラムを用意していかなければならなく
なるので、画面構成&キー操作などの挙動を統一したければCanvasクラス
を使ったほうが良いような気がします。
でもCanvasでも機種依存が多少ありますけどね…。

If you display just anything, how is it when you use Canvas?
Even not using Canvas / In order to not use canvas, I wonder
if you have any have any reason to use it? [???]
If you avoid behavior that depends on high-level user interface
device-dependencies and GUI organization dependencies, etc. 
because you have prepare a program for each of the worst
devices, if you consolidate the behavior of screen composition
and key operations, you'll still see some device dependencies
evern with Canvas Class and Canvas. [???]

> 簡単にスクロール出来る方法があれば一番なのですが、

> If there's some easy way you can scroll, that's the most important thing,

Canvasでスクロールするには「簡単」とはいかないんですが、一度スク
ロール画面を作ってしまうと後々利用できますんでこちらの方法も検討
していただけたら、と思います。
リストボックスやセレクトボタン、ラジオボタン”もどき”も出来ます
よ。


To scroll using Canvas, well, there's just no easy way, 



From: mayumi_sawahata
Sent: Wednesday, September 05, 2001 10:57 AM
Subject: [JavaHz:1400] Re: Panel での画面スクロールについて
About image scrolling using Panel

澤畠です。

Sawahata here.

松本さん。端さん。坂本さん。情報ありがとうございました。
色々と方法はあるものですね。
皆様から頂いた情報を元に、処理を検討してみたいと思います。

Matsumoto-san, Hashi-san, Sakamoto-san - thanks for the information.

>坂本さん
> Sakamoto-san:

今回、Panelを選んだのは単純にテキストを表示させるだけなら
Panelの方が簡単だと思ったからです。(スクロールしないとは
思わなかったので…)

This time, if it's true that what only the text that's been
selected in the Panel is simply [???] displayed,
I though it was simpler [to use] "Panel" [???].

今回は、多分Panelで対応する事になると思いますが、
今後のためにもCanvasでスクロールさせる方法を勉強したいと
思います。

Now, maybe, it might turn out that this is compatible with Panel,
but I think I want to figure out a way to make it scroll using
Canvas in the long run.

ちなみに、Canvasでスクロールさせる方法とは、
上下左右キーのイベントを拾って(processEvent?)、キーの
押された分だけX,Y座標をずらしてテキストを表示させる。
というやり方でよろしいのでしょうか?

In this connection, in scrolling with Canvas,
picking up (processEvent) events from the
up-down-left-right keys, just from the parts [???]
that where the keys are pressed, the XY coordinates
are staggered [???] and the text is displayed.
Is doing things this way OK, I wonder?

−−−−−−−−−−−−−−−−−−−−−−−−−−−−
   澤畠真由美
   E-Mail:mayumi_sawahata@pis.hitachi.co.jp



From: "坂本 善隆" (yos-saka)
Sent: Wednesday, September 05, 2001 12:11 PM
Subject: Re: [JavaHz:1400] Re: Panel での画面スクロールについて
About image scrolling using Panel

 坂本です。

  Sakamoto here.

----- Original Message ----- 
From: mayumi_sawahata
Sent: Wednesday, September 05, 2001 10:57 AM
Subject: Panel での画面スクロールについて


> 
> 澤畠です。
> 
> >坂本さん
> 今回、Panelを選んだのは単純にテキストを表示させるだけなら
> Panelの方が簡単だと思ったからです。(スクロールしないとは
> 思わなかったので…)

> Sawahata here.
>
> >Sakamoto-san
> This time, if it's true that what only the text that's been
> selected in the Panel is simply [???] displayed,
> I though it was simpler [to use] "Panel" [???].

そうですね。絶対Panelの方が簡単だと私も思います。

Yes, I also think Panel is definitely easier.

> 今回は、多分Panelで対応する事になると思いますが、
> 今後のためにもCanvasでスクロールさせる方法を勉強したいと
> 思います。

>Now, maybe, it might turn out that this is compatible with Panel,
>but I think I want to figure out a way to make it scroll using
>Canvas in the long run.

> ちなみに、Canvasでスクロールさせる方法とは、
> 上下左右キーのイベントを拾って(processEvent?)、キーの
> 押された分だけX,Y座標をずらしてテキストを表示させる。
> というやり方でよろしいのでしょうか?

>In this connection, in scrolling with Canvas,
>picking up (processEvent) events from the
>up-down-left-right keys, just from the parts [???]
>that where the keys are pressed, the XY coordinates
>are staggered [???] and the text is displayed.
>Is doing things this way OK, I wonder?

そうなんですが、色々と前処理が必要になってきます。

Well, yes, but it's come to require some preprocessing.

Canvasで文字の表示はGraphics#drawString()をつかいますが、画
面の横幅を超えてしまう文字列を表示させようとしても改行は行っ
てくれませんので、このあたりの処理が必要だと思います。

For character display on Canvas, you use Graphics#drawString(), but
because you have to supply linefeeds in order to help display
character string that are wider than the [Canvas] image, some
sort of processing is required.

私のやり方では
  1.表示させる文字列を用意する
  2.1行で表示できるように「1」の文字列を分解(Vectorク
    ラスを使っています)
  3.paint()メソッドで画面に「2」で作成した文字列を順に
    表示する
ということをしています。

How I do it:
  1. prepare the character string
  2. take that string apart into single lines for display
     (using the Vector class)
  3. display those lines using the paint() method.

表示する文字列が固定的(分かっていれば)であれば「2」はVector
クラスよりStringの配列を使用したほうがメモリ消費量が減るかも
しれません。

If the strings to display are fixed (if you can know this),
Maybe you can reduce the memory requirement the space
used by the Vector class to store String arrays.

スクロールは澤畠さんのおっしゃる通りで、processEvent()で上下
のキーイベントを取得しpaint()メソッドで表示する文字列の表示
開始行を変更する方法で可能です。

As for scrolling, using the way Sawahata suggests, with
processEvent(), you can get up-down key events and 
should be able to use the paint() method to change the
first line of the character array displayed. [???]

Canvasクラスを利用する利点は、改行処理をすることができる(逆
に言えばPanelのUIでは改行を自由に行えない)ところだと思います。
私はListBoxで表示する文字列の改行をしたかったんですが、できな
かったのでCanvasでListBoxを作ってしまいました。
あと、上手く作ればクラスサイズを小さくできること、ですね。

As for the advantages of using the Canvas class, this is
where you have to do linefeed handling (you can't freely
use linefeeds with the Panel UI, perversely enough [???]).
In my case, I tried using ListBox to handle linefeeds [???],
but because I couldn't, I ended up using ListBox in Canvas.
[Instead of in Panel??? transl.]

皆さんはどういう方法で表示させているんでしょうか?

How did every else end up handling this one?

それでは頑張って完成させてください!

Let's push on to make this perfect!



From: mayumi_sawahata
Sent: Wednesday, September 05, 2001 3:20 PM
Subject: [JavaHz:1405] Re: Panel での画面スクロールについて

澤畠です。

Sawahata here.

坂本さん、Canvasでのスクロールの方法について
丁寧に説明していただき、ありがとうございました。
参考にさせていただきます。

Sakamoto san, thank you so much for your
thorough explanation of scrolling using Canvas.
You've been a valuable source of information.

画面スクロールに関して、色々と情報を下さった皆様
ありがとうございました。
大変助かりました。今度ともよろしくお願いします。

And about image scrolling, I thank everyone who
supplied various bits of information.  It's been
very helpful.  Once again, thanks.


mld loop playing



From: "Hida Yoshiyuki"
Sent: Wednesday, September 05, 2001 12:24 PM
Subject: [JavaHz:1402] Re(自己レス): mldをループで鳴らす
mld loop not playing

誰かおしえてくださ〜い。

Somebody help, ple-ase!

自分もだけど1393だけやたらにレスが付くのは世の理か...

Maybe this is just me,  but I think there's more to
life than just message 1393 [???]



From: "Fumihiro Hamada"
Sent: Wednesday, September 05, 2001 12:43 PM
Subject: Re: [JavaHz:1391] mldをループで鳴らす
mld loop not playing

初めまして、浜田と申します。

How do you do.  My name is Hamada.

> mldファイルをループで鳴らしつづけたいのですが、AudioPresenterクラスの
> setAttributeで指定できたりはしないのでしょうか?

> I want a continuously-playing mld file loop, but will the AudioPresenter class's
> setAttribute do it for me?

mld再生のループについてですが、ドコモが公開している
「iモード対応JAVAコンテンツ開発ガイド」〜詳細編〜第1.0版
の72〜73ページにサンプルプログラムが載っています。
私もこのサンプルを試したことがあります。

On the subject of mld playback loops, DoCoMo's published
"i-Mode-compatibale Java content developer guide"  ("detailed"
edition [???], version 1), has, on pp.72-3, some sample code.
I've also experimented with this sample.

的外れなら、ごめんなさい。

Sorry if this is off-target.



From: "Hida Yoshiyuki"
Sent: Wednesday, September 05, 2001 1:25 PM
Subject: [JavaHz:1404] RE: mldをループで鳴らす
mld loop not playing

> mld再生のループについてですが、ドコモが公開している
> 「iモード対応JAVAコンテンツ開発ガイド」〜詳細編〜第1.0版
> の72〜73ページにサンプルプログラムが載っています。
> 私もこのサンプルを試したことがあります。
> 的外れなら、ごめんなさい。

> On the subject of mld playback loops, DoCoMo's published
> "i-Mode-compatibale Java content developer guide"  ("detailed"
> edition [???], version 1), has, on pp.72-3, some sample code.
> I've also experimented with this sample.
> Sorry if this is off-target.

サンプルとは気が付きませんでした(サンプルの類は苦手なもので)。

I didn't notice the sample (being bad at spotting this kind of thing.)

早速見てみましたが、これが応用できそうです。

From just quick glance, this looks like what I need.

ありがとうございました。

Thanks much.


top