• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DocumentListenerのスクロール)

JTextPaneのスクロール時に一番上の行が見えなくなる問題の解消方法

このQ&Aのポイント
  • JTextPaneを使用してエディタを作成しています。改行を繰り返していくと、縦スクロールが増えますが、ある程度改行した状態で一番上の行で改行すると、一番上が見えなくなりスクロールされてしまいます。
  • 解消方法を教えて頂けると助かります。
  • JTextPaneのスクロール時に一番上の行が見えなくなる問題について、解消方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

質問の動きをしないので、サンプルを提示頂けますか。 以下は確認に使用したプログラムです。java7 on Windows7 package test; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextPane; public class Sample { public Sample() { JTextPane jTextPane = new JTextPane(); JScrollPane jScrollPane = new JScrollPane(jTextPane); JFrame jFrame = new JFrame(); jFrame.getContentPane().add(jScrollPane); jFrame.setVisible(true); } public static void main(String[] args) { new Sample(); } }

wafu1318
質問者

お礼

お世話になっております。 質問内容と大分離れてしまうのですが、 自分のプログラムは、JPanelにBoderLayoutを設定し、 WESTとCENTERにJTextPaneを貼り付けています。 CENTERのJTextPaneを改行したら、WEST上のJTextPaneに 行数を表示するようなロジックにしていました。 その設定の仕方が悪かったようでスクロールがずれてしまう 現象が起こっていました。 BorderLayoutではなく、setRowViewportを使用することで 本現象を回避しました。 わざわざ回答を頂きありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 入力された●から●迄の空白をカウントする方法

    どなたかご存じでしたらご回答よろしくお願いします。 【質問】  各列毎に●や▲が任意の数がある8行のセルがあります。  8行目の任意列に●を入力した場合、  そこから上に遡って●までの間の空白のセルを数える方法が知りたいです。  但し、▲も”空白の1つ”として数えます。 【入力】    A  B  C  D  E  F  G …  1 ●  ●         2        ●  ▲ ● ▲   3     ▲ ●       ▲  4                5  6  7   8 ●  ● ●               【結果】  A B C D E F G・・・   6 6 4 0 0 0 0 ※結果の説明 A:8行目の●から上に数えて●迄の空白は6個。 B:8行目の●から上に数えて▲がありその上に空白と●があるが、▲を空白とみなして6個。 C:8行目の●から上に数えて最初の●迄の空白迄は4個。 D:8行目に●は無いため、空白は0個。 E:8行目に●は無いため、空白は0個。 F:8行目に●は無いため、空白は0個。 G:8行目に●は無いため、空白は0個。 使用するエクセルは2010です。 以上、よろしくお願いします。

  • セル内にある長さの違う数字の分割

    A1=123 A2=456 A3=7890 という桁数の違う数字がセル内にある時、B行に千の位、C行に百の位、D行に十の位、E行に一の位⇒  B1=空白 C1=1 D1=2 E1=3 B2=空白 C2=4 D2=5 E2=6 B3=7 C3=8 D3=9 E3=0 と他のセルに表示させたいのですが…、関数MIDを使用すると桁数が違う為、うまくいきません。何か方法があれば教えて下さい。よろしくお願いします。

  • 空白セルのカウント方法

    どなたかご存じでしたら回答をお願いします。 【質問】 各列毎に●や★が任意の数がある8行のセルがあります。 各列毎に8行目から上に遡り、●までの間の空白のセルを数える方法が知りたいです。 但し、★も”空白の1つ”として数えます。 【入力】   A  B  C  D  E  F  G ・・・・ 1 ●        ★ 2       ●  ●  3       ★        ● 4             ★ 5              6 7                ● 8                   ● 【結果】  A B C  D E  F G ・・・  7 8  6  6  8  1 0 ※結果の説明 A:●の下には空白が7個。 B:●が無く空白が8個。 C:●の下に★があるが空白とみなして6個。 D:●の下に空白が6個。 E:★があるが空白とみなして8個。 F:●の下には空白が1個 G:●の下には空白が0個 使用するエクセルは2010です。 以上、よろしくお願いします。

  • FORTRAN 行数の分からないテキストデータの読み込み

    FORTRANで、テキストデータを読み込む際、読み込みたいデータの行数が あらかじめ分からない場合、どのように書けばいいのか分からずこまって おります。たとえば、データ数の行数が、 a、a1、a2・・・ b、b1、b2・・・ c、c1、c2・・・ d、d1、d2・・・ e、e1、e2・・・ などで、5行と分かっている場合は、 do=1,5 read(*,*)・・・ ・・・ と書けばいいことは分かるのですが…。 データの行数が予め分からなくても、すべてのデータを読み込ませる方法 (書き方)についてよろしければご教授ください。

  • リストボックス内の重複したものを削除

    初心者です。 リストボックス内で A--- B--- C--- D--- E--- B--- F--- C--- という行数で表示しているものを onclickで重複しているBとCとの行数を消したいのですが どうすればいいのでしょうか? 消すものは6、8行目のBとCです。 実際は行がもっと多いので for文で上から見て消していくというようにしたいです。 困ってます。よろしくお願いします。

  • 関数の質問

    エクセル2003を使用しています。 下記のシート1に不規則な空白行があり、それをシート2に空白行を詰めて 表示させたいのですがわかりません。 関数でよろしくおねがいいいたします。 シート1 A B C D E F G 1 1 1 1 1 1 1 1 2 3 2 2 2 2 2 2 2 4 3 3 3 3 3 3 3 5 6 7 4 4 4 4 4 4 4 8 9 5 5 5 5 5 5 5 10 11 12 13 6 6 6 6 6 6 6 14 7 7 7 7 7 7 7 15 8 8 8 8 8 8 8 16 9 9 9 9 9 9 9 17 18 シート2 A B C D E F G 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 10 11 12 13 14 15 16 17 18 ・ ・ ・ ・

  • COUNTBLANKのような役割を持つマクロ

    COUNTBLANKとはちょっと違うのですが、 行 ↓ A B C D ←列 1  AB AC AD AA 2 BB 3 C CC 4 DD 上記のようなデータがあります。 2,4行目みたいにA列とB列とC列が空白だったら、E2、E4セルに ○っていのを表示させるようなマクロってできないでしょうか。 また、Dのセルに値がある限り、その行数分上記の処理を繰り返す 方法があったら教えてください

  • エクセル 行数指定し一つのセルに改行込で入れる

    日本語が下手でもうしわけないです。 エクセルのマクロにて、行数指定指定したセルを別セルに 改行を含めて入れたいのです。 具体的なやりたいこととしては、 A列に不定期間隔で不定形の文字列が入力されていて、(間は空白) その文字列から文字列の行数を読み、 B列の同じ行数分のセルをひとまとまりとし、 別シートのA1に改行込みで入れる。 次のまとまりはA2に次はA3に… といった動作をさせたいです。 例. 1.A1,A6,A9に文字列があるとする。間は空白 文字列間の行数を読む (1)A1-A5 (2)A6-A8 (3)A9-最終行 2.A列で取得した行数と同じ行数をB列で指定 (1)B1-B5 (2)B6-B8 (3)B9-最終行 3.B列で指定したセルをひとまとまりとして 別シートのA1から順に改行込みで入れる (1)シート2のA1 B1(改行) B2(改行) B3(改行) B4(改行) B5(改行) (2)シート2のA2 B6(改行) B7(改行) B8(改行) (3)シート2のA3 B9(改行) ・ ・ 最終行 ####### マクロでの実現を考えているのですが、 マクロ初心者でさっぱりわかりません。 どなたか、マクロでの記述例を教えて頂けないでしょうか。 また、関数で実現できるのであれば、そちらも教えて頂きたいです。 宜しくお願いします。

  • Excel VBAにてデータのある列の指定とブック間コピーについて

    初めまして。Excel VBA初心者です。よろしくお願いします。 以下の表の状態で、たとえば、B列の2行目からデータが使用されている行(以下の例では40行目ですが、ブックの内容により行数が変化します)まで、別のブックにコピーする方法があれば教えて頂きたいです。 すみませんが、よろしくお願いいたします。 A B C D E ------------------------------- 1 あ い う え お 2 い う え お か     ・     ・ ・ 40 a b c d e

  • エクセルのマクロ(行を挿入し連番を振る)

    ボタンを押すと以下のことを実行するマクロを作成することはできますか? A列2行目から 書類a 書類b 書類c 書類d 書類e C列2行目から 5 3 2 4 3 と入っています。C列は各書類の枚数です。 ボタンを押すと書類aと書類bの間に4行空白行が挿入され、A列とC列は増やした4行にそれぞれ書類a、5がコピーされ、B列には2列目から6列目まで1.2.3.4.5と連番が振られる。 というマクロです。 B列C列で1/5 2/5 3/5 4/5 5/5 であるという表現がしたいのです。(/は入りません) 書類が1枚の場合はB列C列共に空白で1/1とは入りません。 C列に入る書類の枚数により行が挿入されその書類の枚数分の連番が振られるようなマクロが作りたいです。 毎日何百行も手作業で挿入しコピーし連番を振る作業をしています。 決まった行数を増やすとか上の行をコピーするマクロならわかるのですが、C列の値を見て挿入する行数を判断するようなマクロができるのかわかりません。 どなたか教えて頂けないでしょうか。