|
1. ソースコードダウンロード
=>
TextBox.zip
2. テスト項目・方法
このテストはjavax.swing.JTextArea、javax.swing.JTextPane、javax.swing.EditorPaneのテストとは全く異なる。そもそもSwingのテキストエディターはDrawing
Toolには使えない。テキストが任意の倍率で表示できないからである。
このテストにおけるテキストエディターはInput Method framework, Java 2D Graphicsのモジュールで構成している。図2に示すように任意の倍率で表示できる。
このテストの目的は、上記テキストエディターの動作テストある。テキスト入力、コピー&ペースト、削除、テキストの属性設定などは一通りテストできる。
:
• Input Method framework =>Java Input Method Framework テクノロジ, Java™ Input Method Framework (IMF) Technology (en)
• Java 2D Graphics =>Java Tutorial Trail: 2D Graphics
3. テスト結果
|
図1 テキストボックス の初期表示(上段:英語テキスト、下段:日本語テキスト)
あくまでも初期表示なので、下段に英語テキストを書いてもよい。
|
|
図2 Zoomにより図形、テキストを縮小表示 |
4. テストの操作マニュアル
操作
|
説明
|
編集するテキスト
ボックスの選択 |
表示図形の内部をクリックすると図1のように緑色の枠が表示される。緑色の枠が表示されているテキストボックスは編集可能である。図1の下段のコーナーRつき矩形(RounRectangle)の内部をクリックすると、その内部に含まれるテキストボックスが編集可能になる。
|
表示図形のズーム
(拡大/縮小)
|
ボタンを押すと表示倍率のダイアログが表示される。
・ZoomToはコンボボックスで倍率を選択する。
・Percentは1%刻みで指定できる。上下の矢印を押すか、直接数字を入れてもよい。
: propertyタブは現在使っていない。
|
元へ戻す、再実行
|
undo(元へ戻す), redo(再実行)ボタン
もし変更がない場合、図1のように矢印が灰色で表示される(disable状態)。
|
編集
削除
|
editボタンをクリックしプルダウンメニューから選ぶ。
cut, copy, paste, del (delete)コマンドはテキスト編集に使用する。
:
• cut, copyをクリックする前に、マウスドラッグでテキストを選択しておくこと。
選択したテキストはピンク色の背景色で示される。
また一番下のステータスパネルにテキストの選択範囲がつぎのように表示される。
• paste: 他のアプリケーション、例えばMicrosoft Wordで コピーしたテキストでもペーストできる。
但し属性は失われplainテキストでペーストされる。
• del: テキストを選択してBackspaceキー、Deleteキーを押しても同じ。
|
フォント属性設定
(フォントメニュー) |
左から
・フォントファミリを選ぶコンボボックス
・フォントサイズを選ぶコンボボックス
・B : 太字(Bold)オン/オフ
・I :イタリック
・U : 下線
・X2 : 下付き文字
・X2 : 上付き文字
・A : フォントの色
: A ボタンをクリックするとつぎの専用カラーチューザが開く。
これに関する操作・説明=>専用カラーチューザ(Custom Color Chooser)
:
(1)テキストボックス内でマウスをクリックしてテキストカーソル(キャレット)を移動したとき、テキストカーソルの前の文字属性が上のフォント属性設定メニューに表示される。
(2) テキストボックス内でマウスをドラッグしてテキストを選択したとき、選択したテキストに共通属性があれば上のフォント属性設定メニューに表示される。
[例]Dialog、16ポイント、Bold、Undelineのテキストを選択
|
4. Test code 概要
mainパッケージ
textBoxパッケージ
クラス
|
説明
|
AttributedInterval |
public class AttributedInterval implements Serializable, Cloneable
属性つき文字列を分解したとき、ある属性をもつ文字列の区間を表す。
API=> DrawTop AttributedInterval
|
AttributedStringUtil
|
public class AttributedStringUtil implements Serializable
属性つき文字列の処理メソッドをまとめたクラス。
API=>DrawTop AttributedStringUtil
|
CaretPosition |
public class CaretPosition
TextBoxのカーソル(キャレット)の表示位置を表す。
API=>DrawTop CaretPosition
|
FontStyle
|
public class FontStyle
・フォントに属性を設定する。
・デフォールトフォント属性を返す。
・フォントメニュー(フォント属性設定)に設定されている属性を取得する。
・フォントメニューにフォント属性を設定する。
・テキストの範囲を指定して、その区間のフォント属性を取得する。
API=>DrawTop FontStyle
|
Interval |
public class Interval implements Serializable
AttributedStringUtil、TextBoxで使われる。文字列の区間を表すクラス。
API=>DrawTop Interval
|
LineBreaker |
public class LineBreaker
java.awt.font.LineBreakMeasurerを使って、属性つき文字列を表示領域の幅に収まるよう複数行に割り付ける。
API=>DrawTop LineBreaker
|
SerializableAttributedString |
public class SerializableAttributedString implements Serializable, Cloneable
java.text.AttributedStringはSerializableではないためファイルには書き込めない。またクリップボード経由のデータ転送(Copy&Paste)にも使えない。このためSerializable
インターフェイスをインプリメントしたSerializableAttributedStringクラスを用意する。
API=> DrawTop SerializableAttributedString
|
ShapeContainer |
public class ShapeContainer
DrawTop ShapeContainerのサブセット。ShapeContainerは種々の図形要素を格納する容器である。ShapeContainerがグループ図形でなければ、直線、折れ線、矩形など基本図形要素を持たせる。グループ図形の場合は、グループ要素(GroupElement)を持たせ、グループ要素にグループの基本図形要素オブジェクトを持たせる。
API=> DrawTop ShapeContainer |
TextBox |
public class TextBox implements MouseListener, MouseMotionListener, Serializable
テキストを入力し編集するテキストエディタ。テキストには、フォントファミリィ, フォントサイズ、Plain∙ Bold∙ Italicの属性、アンダーライン、上付き/下付きの属性、色属性が設定できる
API=>DrawTop TextBox
|
TextUndoSetup |
public class TextUndoSetup
テキストの挿入∙ 削除のundo設定を行う。1文字ごとにundo設定を行うのは不経済なので、連続的に入力された文字列や、Back spaceキーで連続的に削除された文字列には一括してundo設定を行う。
API=>DrawTop TextUndoSetup
|
utilパッケージ
クラス
|
説明
|
ButtonOfColorChooser |
public class ButtonOfColorChooser extends JButton implements ActionListener,
ColorSelectionListene
このテストではフォント属性設定のAボタンが該当する。このボタンを押すと下のCustomColorChooserDialogが開く。
API=> DrawTop ButtonOfColorChooser
|
ButtonOfPulldownMenu |
public class ButtonOfPulldownMenu extends JMenuBar
編集のeditボタン。DrawTop ButtonOfPulldownMenuのサブセット。
API=>DrawTop ButtonOfPulldownMenu
|
ButtonOfToggle |
public class ButtonOfToggle extends JToggleButton implements ItemListener
Zoom, Undo, Redo, Del, フォント属性設定のB(Bold), I(Italic), U, X2, X2ボタンなど。
API=>DrawTop ButtonOfToggle
|
ComboBox |
public class ComboBox extends JComboBox implements ActionListener
フォント属性設定のフォントファミリ、フォントサイズを選ぶコンボボックス
API=>DrawTop ComboBox
|
ContainerManager |
public class ContainerManager
DrawTop ContainerManagerのサブセット。図形データをArrayListで管理する。
API=>DrawTop ContainerManager
|
CustomColorChooserDialog |
public class CustomColorChooserDialog extends JDialog implements ActionListener,
WindowListener
カスタムカラーチューザー。
API=>DrawTop CustomColorChooserDialog
=>トピックス 専用カラーチューザ(Custom Color Chooser)
|
DialogOfZoom |
public class DialogOfZoom extends JDialog
表示図形のズームのダイアログ。
API=>DrawTop DialogOfZoom
|
DrawMenu |
public class DrawMenu
ツールバーのボタン、コンボボックスなどを設定する。
API=> DrawMenu (このページ)
|
Edit |
public class Edit implements ClipboardOwner
DrawTop Editのサブセット。テキストのカット/コピー&ペースト
API=>DrawTop Edit
|
StatusPanel |
public class StatusPanel extends JPanel
画面の最下段のステータスパネル。テキストボックス内でのテキストカーソルの位置、テキストを選択したときの範囲などを表示する。
API=>DrawTop StatusPanel
|
TransferableAttributedString |
public class TransferableAttributedString implements Transferable, Serializable
Cut/Copy&Pasre操作を行う際、クリップボード経由でデータを転送するときのテキストのデータ形式。
API=>DrawTop TransferableAttributedString
|
UndoConstants |
public class UndoConstants
(a)コマンドの操作コード(ADD, DELETE, CHANGE)と
(b)操作対象:(CONTAINER(ShapeContainerオブジェクト), TEXTBOX(TextBoxオブジェクト), PAINTSTYLE(PaintStylelオブジェクト),
SIZE_POSITION(位置、サイズ), SHAPE(図形データ)
を表す。
API=>DrawTop UndoConstants
|
UndoDrawManager |
public class UndoDrawManager extends UndoManager
javax.swing.undo.UndoManagerの拡張形。
API=>DrawTop UndoDrawManager
|
UndoableDrawEdit |
public class UndoableDrawEdit extends AbstractUndoableEdit
AbstractUndoableEditの拡張形。
API=>DrawTop UndoableDrawEdit
|
Util |
public class Util
DrawTop Utilのサブセット。簡単な幾何計算のメソッド、ソートメソッド、フォーマットつきのプリントアウトメソッドを集めたクラス。
API=>DrawTop Util
|
ViewUtil |
public class ViewUtil
DrawTop ViewUtilのサブセット。画面のZoomを行う。
API=>DrawTop ViewUtil
|
5. Test code API
public class DrawMain extends JFrame
フィールド
|
説明
|
scrollPanelSize |
protected Dimension scrollPanelSize=new Dimension(800,500);
JScrollPaneのサイズ
|
statusPanelSize |
public Dimension statusPanelSize=new Dimension(800,30);
StatusPanelのサイズ
|
numOfShapes |
static int numOfShapes=2;
DrawPanelに表示する図形の数。このテストではRoundRectangle2Dが2個。
|
メソッド
|
説明
|
main |
public static void main(String[] args)
メインメソッド
|
setFrame |
void setFrame()
・DrawMain JFrameの設定を行う。
TabbedPane, DrawPanel, ListenerPanel, StatusPanel, ScrollPane,
・頻繁に使うオブジェクトをObjectTableに登録
ViewUtil, DrawMenu, ContainerManager, Edit, UndoDrawManager, CustomColorChooserDialog
|
createToolBarPanel |
public JPanel createToolBarPanel()
ボタン、コンボボックスなどが並ぶ最上段のツールバーを作成する。
|
createShapes |
public static void createShapes()
DrawPanelに描画する図形を作成する。このテストではRoundRectangle2Dが2個。
|
createText |
public static AttributedCharacterIterator[] createText()
DrawPanelに描画する図形RoundRectangle2Dの内部に描画されるTextBoxに設定する属性つき文字列(Attributed
String)を設定する。
|
public class DrawMenu
フィールド
|
説明
|
imageWidth, imageHeight |
public final static int imageWidth=20, imageHeight=20;
ボタンに張り付ける画像のサイズ。Undo, Redo, Del, フォント属性設定のB(Bold), I(Italic), U, X2, X2ボタンなどの画像は全てこのサイズ。
|
menuItemImageWidth,
menuItemImageHeight
|
public final static int menuItemImageWidth=64, menuItemImageHeight=10;
プルダウンメニューのメニューアイテムに張り付ける画像のサイズ
|
buttonWidth, buttonHeight |
public final static int buttonWidth=22, buttonHeight=22;
ボタンのサイズ。
|
DefaultFont |
public final static Font DefaultFont=new Font(Font.DIALOG, Font.PLAIN,
12);
デフォールトフォント。
|
MenuFont |
public final static Font MenuFont=new Font(Font.DIALOG, Font.BOLD, 12);
ボタンにテキストを表示する時のサイズ。
|
MenuItemFont |
public final static Font MenuItemFont=new Font(Font.DIALOG, Font.BOLD,
11);
プルダウンメニューのメニューアイテムにテキストを表示する時のサイズ。 |
zoom |
public static ButtonOfToggle zoom;
zoomボタンオブジェクト。
|
undo, redo |
public static ButtonOfToggle undo, redo;
undo, redoボタンオブジェクト。
|
edit |
public static ButtonOfPulldownMenu edit;
editプルダウンメニューオブジェクト。
|
del |
public static ButtonOfToggle del;
delボタンオブジェクト。
|
fontFamily, fontSize |
public static ComboBox fontFamily, fontSize;
fontFamily, fontSizeコンボボックスオブジェクト。
|
fontBold, fontItalic, fontUnderline, fontSubscript, fontSuperscript |
public static ButtonOfToggle fontBold, fontItalic, fontUnderline, fontSubscript,
fontSuperscript;
fontBold, fontItalic, fontUnderline, fontSubscript, fontSuperscriptボタンオブジェクト。
|
fontColor |
public static ButtonOfColorChooser fontColor;
fontColor(A)ボタンオブジェクト
|
メソッド
|
説明
|
createEditGroup |
public static JPanel createEditGroup()
ツールバーのzoom, undo, redo, delオブジェクトを設定する。
|
createFontStyleGroup |
public static JPanel createFontStyleGroup()
フォントメニューオブジェクトを設定する。
|
setFontStyle |
public void setFontStyle(FontStyle fontStyle)
フォント属性設定(フォントメニュー)上のオブジェクトでフォントの属性が選ばれたときにこのメソッドを呼んで、テキストボックス内のテキストにフォント属性をセットする。
テキストボックスのフォント属性設定メソッドはsetFontStyle。テキストボックスで選択されたテキストに対してフォント属性設定を設定する。テキストが選択されていなければ何もしない。
|
|