学生向けにプログラミングを解説。次>>テキストの入力(あるいは出力)えお行うには、javac.swing.textJTextComponentを基とするテキストコンポーネントを使用します。具体的には、javax.swingパッケージにある「JTextField」「JPasswordField」「JTextArea」「JTextEditor」「JTextPane」などのクラスを使用します。今回は上記5種類を使用します。特徴は以下の通りです。編集可能な短いドキュメント。折り返しなどが設定できる。様々な表示形式を設定できる。複数のフォント、画像、コンポーネントなどを使用できる。(JEditorPaneを拡張)JTextComponentは、「表示テキスト」「実行できるアクション」「キーマップ」「キャレット」「文字や背景、キャレットの色」などの設定と取得、「コピー」「切り抜き」「貼り付け」の処理などを行うことが出来ます。JTextComponentで、値を取得するためのメソッドの一部を挙げておきます。設定は「get○○」の返値を引数とした「set○○」というようになります(返値はvoid)。キャレット(カーソル)の色を設定するには「setCaretColor(Color)」となります。編集可能か否かこのほかに「copy()」(コピー)、「cut()」(切り取り)、「paste()」(貼り付け)といったメソッドがあります。以下のサンプルプログラムを作成してみましょう。"South");frame.pack();frame.setVisible(true);}}1行入力を行う場合には、JTextFieldを使用します。//文字列と桁数を指定ただし、指定する桁数は「m」(最も幅が広いと思われる文字)にあわせたものですので、実際には目安程度と考えてください。テキストフィールドに表示する文字列のは位置の指定は、「setHorizontalAlignment()」を使用します。使用できる定数は、JTextFieldの「LEFT」「CENTER」「RIGHT」「LEADING」(左から右に記述する場合は左端)「TRAILING」(左から右に記述する場合は右端)です。//新しいテキストフィールドを生成tf1.setHorizontalAlignment(JTextField.CENTER);テキストフィールドのイベントは、基本的にはActionListenerを利用して、actionPerformed()メソッドに処理を記述すればよいです。この場合、コンポーネントで「Enter」キーが押されることで「イベントの発生」となります。「getText()」でテキストを取得すればよいです。1行入力で、内容が表示されないようにするには、JPasswordFieldを使用します。JPasswordFieldは、JTextFieldを拡張したものなので、JTextFieldと同様に使用できます。表示される文字の初期設定は「*」ですが、「setEchoChar('文字')」で他の文字にも変更できます。//表示文字は「?」パスワードフィールドの値を取得する場合は、「getText()」(返値はString)ではなく、「getPassword()」(返値はchar[])が推奨されています。String型として扱うには以下のようにします。//char[]をStringに複数行の表示(入力)を行うシンプルなテキストコンポーネントは、JTextAreaです。//文字列と行・桁JTextAreaでは、「折り返し処理」(1行に収まらないテキストを次行に表示するかどうか)、「単語での折り返し処理」(英単語などが行末で分断される場合、そのまま表示するか、次行の先頭から表示するか)、「タブの幅」(初期設定は「8」)などを設定できます。位置)」や「append(String)」を用います。//文字列の末尾に「test」を追加では、サンプルプログラムを実行してみましょう。テキストフィールドとパスワードフィールドに入力が出来ます。入力してENTERを押すとテキストエリアに表示されます。テキストフィールドにはデフォルトで「test」と表示されています。メニューからコピーとペーストが出来ます。以下のサンプルプログラムを作成してみましょう。frame.setVisible(true);}}JEditorPaneは、通常のテキストの他に、HTML(3.2)やRTF(制限付き)形式で文書を表示します。JEditorPane("http://www.URL.ne.jp/index.html");文章をそのように表示するかは、インストールされている「EditorKit」によって決まります。EditorKitは「setEditorKit(EditorKit)」で設定できます。javax.swing.text.rtf.RTFEDitorKitクラスこれらの形式の文章をロードするには、以下のようなメソッドを使用します。readerから生成。現在のEditorKitが使われる。<base>タグなどが使用されていないとイメージなどの相対参照が出来ない。URLから自動的に判断される適切なEditorKitが使用される。JEditorPane();//自動的に、HTMLタグを理解した表示になるep.setPage("http://URL.ne.jp/index.html");エディタペインでは、javax.swing.event.HyperlinkListenerを利用することにより、「編集不可」の場合にハイパーリンクを有効にさせることが出来ます。イベントが発生した場合には、hyperlinkupdate(HyperlinkEvent)で処理されます。}}では、サンプルプログラムを実行してみましょう。テキストファイルのオープン、編集、セーブが出来ます。以下のサンプルプログラムを作成してみましょう。frame.setVisible(true);}}なお、このプログラムを実行するには、以下の「char0.gif」が必要ですので、プログラムを作成するフォルダに保存しておいてください。char0.gifJTextPaneは、JEditorPaneを拡張したクラスで、さらにイメージアイコンやコンポーネントを表示(編集)することが出来ます。JTextPane(StyledDocument);イメージの挿入は「insertIcon(Icon)」で行い、コンポーネントの挿入は「insertComponent(Component)」で行います。//イメージの挿入では、サンプルプログラムを実行してみましょう。いろいろな色の表示テストが出来ます。まとめはてなブログをはじめよう!MrRadiologyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。