Swing/ViewportBorder のバックアップソース(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- バックアップ を表示
- Swing/ViewportBorder へ行く。
--- title: JViewportにBorderを設定する tags: [JViewport, Border, JScrollPane, JTextArea, Caret] author: aterai pubdate: 2014-01-13T00:01:30+09:00 description: JViewportにBorderを設定して余白を作成します。 --- * 概要 [#q233e37e] `JViewport`に`Border`を設定して余白を作成します。 #download(https://lh6.googleusercontent.com/-dtdRJtfyQqs/UtKoFiKxRVI/AAAAAAAAB-A/QmWEeAHNlmE/s800/ViewportBorder.png) * サンプルコード [#q2fb173c] #code(link){{ JTextArea textArea1 = new JTextArea("JTextArea#setMargin(Insets)\n\n" + INIT_TXT); textArea1.setMargin(new Insets(5, 5, 5, 5)); JScrollPane scroll1 = new JScrollPane(textArea1); JTextArea textArea2 = new JTextArea("JScrollPane#setViewportBorder(...)\n\n" + INIT_TXT); textArea2.setMargin(new Insets(0, 0, 0, 1)); JScrollPane scroll2 = new JScrollPane(textArea2); scroll2.setViewportBorder(BorderFactory.createLineBorder(textArea2.getBackground(), 5)); }} * 解説 [#yb7349eb] - 左: `JTextArea#setMargin(Insets)` -- `JTextArea`に`setMargin(Insets)`で余白を設定 -- 行変更などのカーソル移動で先頭や末尾の余白分まではスクロールされない - 右: `JScrollPane#setViewportBorder(...)` -- `JTextArea#setMargin(new Insets(0, 0, 0, 1))`で`JTextArea`自体の余白を変更 --- すべて`0`の場合、一番長い行の末尾でキャレットが表示されない -- `JScrollPane#setViewportBorder(...)`で`JViewport`の周囲に余白を設定 --- スクロールバーなどの有無によらず、この余白は常に表示されている //* 参考リンク * コメント [#d0dbcfff] #comment #comment