TITLE:JViewportにBorderを設定する
#navi(../)
#tags(JViewport, Border, JScrollPane, JTextArea, Caret)
RIGHT:Posted by &author(aterai); at 2014-01-13
* JViewportにBorderを設定する [#q233e37e]
`JViewport`に`Border`を設定して余白を作成します。

- &jnlp;
- &jar;
- &zip;

#ref(https://lh6.googleusercontent.com/-dtdRJtfyQqs/UtKoFiKxRVI/AAAAAAAAB-A/QmWEeAHNlmE/s800/ViewportBorder.png)

** サンプルコード [#q2fb173c]
#code(link){{
JTextArea textArea2 = new JTextArea("JScrollPane#setViewportBorder(...)\n\n" + initTxt);
textArea2.setMargin(new Insets(0,0,0,0));
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