二つのスレッドがjTextAreaへのテキスト書き込みを行うJavaアプリケーションを作っています。そこで、jTextArea内でのカーソルの移動をプログラム側で制御したいのですが、カーソル移動の方法がわかりません。A、Bのスレッドがあるとして、Aはキーボードからの入力を表示する。ここでは入力位置にカーソルがあるので問題ありませんが、Bのスレッドがテキストをappend()した場合、append()されたテキストの文末にカーソルを移動したいのです。現状ではカーソルはキーボード入力された文末に留まったままになり、矢印キーでappend()されたテキスト分移動させなくてはなりません。これではさすがに操作性が悪すぎますし、かっこ悪いですよね。どなたかカーソルの操作方法をご存知でしたら教えていただけないでしょうか。よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

javax.swing.text.JTextComponent クラスの



setCaretPosition(int position)メソッド

ではダメですか?

実際プログラミングしていないので自信ないですが、APIドキュメントを見るとできそうです。

参考までに。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。お礼が遅れて申し訳ありませんでした。
このメッソドを使うには、先にテキスト全体のテキスト量を取得して、それをpositionとしてカーソルを文末に飛ばす、ということですね。さっそく試してみます。

お礼日時:2001/10/15 18:10

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qツールバーがカーソルを合わせないと出ない

サイトを見ている際、上部にツールバーが出ていたのですが、今ではそこにカーソルを合わせないと出なくなってしまいました。
下部のツールバー?も以前より小さくなってしまいました。
元に戻したいのですが、どうしたらよいでしょう?

Aベストアンサー

F11キーを押してください。

Q子ウィンドウを閉じるとき、親ウィンドウのテキストボックスにカーソルを移動したい。

子ウィンドウを閉じるとき、親ウィンドウのテキストボックスにカーソルを移動したい。(java)
<script>
function openChild(f){
window.open("child2.htm","_blank");
}
</script>
<form>
<input id="text1"><br />
<input id="text2"><br />
<input type="button" onclick="openChild(this.form)" value="子ウィンドを開く">
</form>

子ウィンドを閉じる
<input type="button" onclick="window.close()" value="閉じる">

親ウィンドウのテキストボックス(id="text2")にカーソルを移動したいのですが。

<input id="text2"><br />

Aベストアンサー

・ タブブラウザでないIEの場合ですが、

child2.htm
------------------------------------------------------------

<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
function closeThis() {
window.opener.document.getElementById("text2").focus();
window.close();
}
//-->
</script>
</head>
<body>
<form>
<input type="button" onclick="closeThis()" value="閉じる">
</form>
</body>
</html>

Q画面立ち上げ時 カーソルが出ない

windowas meのノートを使っていました。
画面を立ち上げたら、画面の絵や文字が拡大されていて、いくら動かしてもカーソルが現れません。
今は違うパソコンからアクセスしてますが、どうしたらよいのでしょうか?
教えてください。お願いします。

Aベストアンサー

多分、レジストリトラブルでしょう!

キーボードよりウインドウズキーを押し、
方向キー(↑)で「ファイル名を指定して実行」で
エンター、scanregw /restore(scanregwの後
ワンスペース)と入力しエンター、
「レジストリの復元」画面で
方向キーで正常だった最新の日でエンター
これで再起動がかかります

修復出来ると思いますが?

QFirefoxでテキストボックスからボタンにカーソル移動したい。

テキストボックスからEnterキーでボタンにフォーカスを移したいと思い以下のように記述しました。
IEでは動作したのですがFirefoxでは動きません。いろいろ調べてevent.keyCodeが使えない場合があるというようなことがわかり、いろんなところからサンプルを引っ張ってくっつけたのですがうまくいきません。
1.どこがいけないのか
2.どうしたら動くのか
を教えてください。参考になるURLでもかまいません。よろしくお願いします。

<input id="comment" size="80" onkeypress="return myKeyPress(event);" type="textbox">
<input id="insertButton" onclick="test()" type="button" value="コメント">

function myKeyPress(event){
 var strUA = "";
 strUA = navigator.userAgent.toLowerCase();
 if(strUA.indexOf("firefox") != -1){   //ブラウザの判定
  var browser=0;
 }else if(strUA.indexOf("msie") != -1){
  var browser=1;
 }
 if(browser==0){ //firefox用
  if(event.charCode == 13){
   document.getElementById("insertButton").focus();
  }
 }else{ //IE用
  if(event.keyCode == 13){
   document.getElementById("insertButton").focus();
  }
 }
}

テキストボックスからEnterキーでボタンにフォーカスを移したいと思い以下のように記述しました。
IEでは動作したのですがFirefoxでは動きません。いろいろ調べてevent.keyCodeが使えない場合があるというようなことがわかり、いろんなところからサンプルを引っ張ってくっつけたのですがうまくいきません。
1.どこがいけないのか
2.どうしたら動くのか
を教えてください。参考になるURLでもかまいません。よろしくお願いします。

<input id="comment" size="80" onkeypress="return myKeyPress(event);" ty...続きを読む

Aベストアンサー

ちなみにこんなのはどうでしょう?
ボタンはSHIFT+ENTERになります!
ほかでは、ユーザーインターフェースを変えるべきではない!と
怒られますが、ここの板では攻撃する人が少ないようなので・・・
enterをtabに変えるものを以前は使ってました。
このことについては、他の方の意見も聞いてみてください

<html>
<input type="text"><br>
<input type="hidden">
<input type="radio" name="a">A /
<input type="radio" name="a">B (カーソルで)<br>
<input type="button" value="SHIFT+ENTER" onClick="alert('ok')"><br>
<input type="checkbox">スペースキーで<br>
<script>
document.body.onkeypress = nextFocus;
function nextFocus(e){
var obj = e ? e.target: event.srcElement;
var evt = e ? e: window.event;
switch( evt.keyCode ){
case 13:
if(evt.shiftKey && ( obj.type == 'button') || ( obj.type == 'reset' ) || (obj.type=='submit') )return;
var elms = document.getElementsByTagName('input');
for( var i=0, m=elms.length; i<m; i++){
if( elms[i] == obj ){
do{ i=(++i)%m; }while(elms[i].type=='hidden')
elms[i].focus();
return false;
}
}
case 27: obj.blur(); break;
}
}
</script>
</body>
</html>

ちなみにこんなのはどうでしょう?
ボタンはSHIFT+ENTERになります!
ほかでは、ユーザーインターフェースを変えるべきではない!と
怒られますが、ここの板では攻撃する人が少ないようなので・・・
enterをtabに変えるものを以前は使ってました。
このことについては、他の方の意見も聞いてみてください

<html>
<input type="text"><br>
<input type="hidden">
<input type="radio" name="a">A /
<input type="radio" name="a">B (カーソルで)<br>
<input type="button" value="SHIFT+ENTER" onClic...続きを読む

Qツールバーにカーソルをポイントしてもヒントが出ない

エクセルの2000を使っていますが、標準ツールバーにある「上書き保存」のマークや「切り取り」などのマークの上にカーソルを置いてもヒントが出ません。
普通だったらどんなことが出来るのか、マウスポインタの下に文字が出ますよね?
すみませんが、ご回答よろしくお願いします<(_ _)>

Aベストアンサー

ツール-ユーザー設定-オプションタブ
ツールバーにボタン名を表示する のチェックを
オンにしてみてください。

Qテキストエリア内のカーソル位置に文字を入力する方法

複数のbuttonを使って、textarea内に順番に文字を入れていくことは出来ましたが、
途中に文字を挿入したいとき、カーソルを合わせてbuttonを押しても末尾に入力される為、
カーソルの位置に入力できるようにしたいのですが、方法(ソース)が判りましたら教えてください。

また、buttonを使って連続で入力した際、最後に入力された
文字のみ削除するbuttonの作り方も判れば教えてください。
お願いします。

ブラウザはIE8です。

Aベストアンサー

”カーソル” でけんさくしないで、”キャレット” でしらべてみれば?

Q画像にカーソルをおくと左上に出てくるものを出ないようにするタグ教えてください!

よく画像にカーソルをおくと、
画像の左上に小さくでてくるもの
(クリックすると、画像を保存できたり、
印刷出来たり、メールで添付できる4つのものです)
を、出てこなくしたいのですが
その方法(タグ等)教えて頂けますか?
宜しくお願いします。

Aベストアンサー

1ページ分の画像のイメージツールバーを非表示する場合。
<HEAD>と</HEAD>の間に入れてください。
<meta http-equiv="imagetoolbar" content="no">

imgタグに直接入力する場合は
<img src="画像のファイル名" alt="画像の説明" width="横幅" height="縦長さ" galleryimg="no">

Qテキスト領域に入力した値を利用して、他のテキスト領域の数を追加したいのですが。

教えてください。
現在、入力フォームを作成しています。
テキスト領域(A)で入力した数値分だけ、テキスト領域(B)の数を作成したいのですが、そのようなことは可能でしょうか?

例えば、
「OnChangeを使用して、テキスト領域(A)に数値を入力し、移動した時にテキスト領域(A)の数値分だけ、テキスト領域(B)を作成する」
といったようなことなんですが・・・。

Javascript関連のWebを見たのですが、テキスト領域の追加(挿入)といったようなことが書かれていないので、どなたかご存知でしたら、よろしくお願いします。

Aベストアンサー

innerHTMLで埋め込むかなぁ。
以下がサンプルです。

<HTML>
<BODY>
<SCRIPT>
<!--
function add()
{
var n = eval(document.form.a.value) ;
var html = '' ;
for (i=1 ;i<=n ;i++){
html += 'b'+i+'<INPUT TYPE=text NAME=b'+i+'><BR>' ;
}
document.getElementById('b').innerHTML = html ;
return false ;
}
// -->
</SCRIPT>
<FORM NAME=form>
a<INPUT TYPE=text NAME=a onChange=add();><P>
<SPAN ID=b></SPAN>
</FORM>
</BODY>
</HTML>

Qカーソルを近づけても表示が出ない

Microsoft Internet Explorerや、タスクバーのクイック起動アイコンにカーソルを近づけると、それが何なのか、黄色い帯の中に黒い字で表示が出ますが、Word2003, Excel2003, Outlook2003では、近づけても何も出ません。どうしたら、インターネットやタスクバーのように、表示が出るように設定できますか?

Aベストアンサー

WordやExcelのツールバーのボタンをポイントしたときに表示される吹き出しのことですね。
ユーザー設定のオプションで、「ツールバーにボタン名を表示する」のチェックが外れていると思います。チェックを付けてください。

QJTabedpaneを使用時のカーソル操作について

お世話になっております。

JavaのSwingを使用してGUIのプログラムを作成しており、
JTabedpaneを使用してタブ化し、各タブの中にはTextAreaを
貼り付けています。

TextAreaの入力部分をキーボードの矢印キーで移動したいのですが、
JTabedpaneを使用すると、矢印キーが効きません。
(Java L&Fの仕様?)

JTabedpaneを使用しても、キーボードの矢印キーでTextAreaの中を
移動したりする設定はありませんでしょうか。

皆さんのお知恵を拝借したいです。
宜しくお願いします。

Aベストアンサー

>#2
 ありがとうございます。

 Java のバージョン 1.6.0_33の環境で、再現しました。
 Swing の JTabedpane と AWT の TextArea を混在させた場合だったのですね。
 よく見れば、質問文にも JTextArea とは、書いてありませんね。

 しかし、質問者さんは、AWT の TextAreaでなければならないのでしょうかねぇ。
 Swing もしくは、AWT で統一すれば、問題解決のような気がするのですが。


人気Q&Aランキング