可視化モジュール作成2(バージョン0.43まで)
をテンプレートにして作成
開始行:
*チュートリアルで試せる内容 [#la4d60cc]
-[[可視化インタフェースモジュールの作り方]]
-[[パネルサイズに応じた表示更新]]
--5)まで、または6)まで
-[[フォーカス情報による可視化連動]]
--7)まで、または8)まで
-[[フォーカス情報による処理連動]]
*1)作成する処理モジュールの仕様を決めます [#j34764e3]
-[モジュール名] AllKeywords(全キーワード)
-[入力] なし
-[処理] すべてのキーワードをマトリクス(格子状のセル内)...
-[出力] すべてのキーワードを一覧で表示
*2)SampleDisplay2.java を利用して,モジュール作成の準備を...
-tetdmのフォルダ内の,moduleフォルダ内のVisualizationModu...
-コピーしてできたフォルダの名前を,作成するモジュール名「...
-コピーして作成したフォルダ内のファイル名を変更します
--SampleDisplay2.java -> AllKeywords.java
--SampleDisplay2.txt -> AllKeywords.txt (テキストファイル...
--必要に応じて,モジュール完成後にREADME.txtを修正します
*3)AllKeywords.java を編集し,プログラム作成の準備をしま...
-プログラム中の SampleDisplay2 と書かれている箇所をすべて...
---// AllKeywords.java Version 0.30
---package module.VisualizationModules.AllKeywords;
---public class AllKeywords extends VisualizationModule
---public AllKeywords()
**コンストラクタの記述の修正 [#nd606a02]
-モジュールのIDを決め,コンストラクタ内のメソッド setModu...
public AllKeywords()
{
setModuleID(9978); // Set your module ID after you have...
}
*4)一度コンパイルして,AllKeywordsモジュールの動作を確認...
-make または ant コマンドでコンパイルします
-コンパイル後TETDMプログラムを起動して,いずれかのテキス...
-''環境設定''の「ツール設定」で,処理ツール「マイニングな...
-パネル上部のモジュール選択メニューで処理モジュールに「マ...
-楕円とテキストの一文目が表示されるのを確認して下さい
(SampleDisplay2.java の処理)
-以下,5),6),7),8),9)のそれぞれの修正を終えた段階で,コン...
--7),8),9)の動作確認の方法は,10)を参照して下さい
*5)キーワードの一覧を表示するプログラムを作成します [#ea3...
-一つのセルの最小サイズを100x20として,パネルの表示領域を...
-パネルのサイズは,paintComponent() メソッド内の,getPane...
**セルのサイズに関する変数を,グローバル領域で宣言します ...
int xNumber;(横のセルの数)
int yNumber;(縦のセルの数)
int cellX;(横のセルのサイズ)
int cellY;(縦のセルのサイズ)
**drawData() 内でセルの表示,およびキーワードを表示する処...
public void drawData(Graphics2D g2)
{
xNumber = sizeX/100;
yNumber = sizeY/20;
cellX = sizeX/xNumber;
cellY = sizeY/yNumber;
g2.setColor(Color.white);
for(int i=0;i<xNumber;i++)
g2.drawLine(cellX*i,0,cellX*i,sizeY);
for(int i=0;i<yNumber;i++)
g2.drawLine(0,cellY*i,sizeX,cellY*i);
g2.setFont(new Font("Dialog", Font.BOLD, 20));
for(int i=0;i<yNumber;i++)
for(int j=0;j<xNumber;j++)
{
if(i*xNumber+j == text.keywordNumber)
return;
g2.drawString(text.keyword[i*xNumber+j].word, j*cellX...
}
}
*6)マウスで触っているキーワードをハイライトする処理を追加...
**クラスの定義を修正します [#r804e1ed]
public class AllKeywords extends VisualizationModule imp...
**マウスの座標,触っているキーワードに関する変数を,グロ...
int mouseX;
int mouseY;
int lastTouchedKeywordNumber;
int touchedKeywordNumber;
**初期化用のメソッドを用いて,マウスモーションリスナーを...
public void initializePanel()
{
addMouseMotionListener(this); //MouseMotionListener
}
public void initializeData()
{
lastTouchedKeywordNumber = -1;
touchedKeywordNumber = -1;
}
**マウスモーションリスナー用のメソッドをオーバーライドし...
//MouseMotionListener
public void mouseDragged(MouseEvent me){}
public void mouseMoved(MouseEvent me)
{
mouseX = me.getX();
mouseY = me.getY();
touchedKeywordNumber = (mouseX/cellX) + (mouseY/cellY) ...
if(touchedKeywordNumber != lastTouchedKeywordNumber)
{
lastTouchedKeywordNumber = touchedKeywordNumber;
repaint();
}
}
**マウスで触ったキーワードをハイライトする処理を追加しま...
public void drawTouched(Graphics2D g2)
{
if(touchedKeywordNumber >= 0 && touchedKeywordNumber < ...
{
g2.setColor(Color.yellow);
g2.drawString(text.keyword[touchedKeywordNumber].word,
(touchedKeywordNumber%xNumber)*cellX, (touchedKeyword...
}
}
//////////paint
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D)g;
getPanelSize();
drawBackground(g2);//background
drawData(g2);
drawTouched(g2);
}
*7)他の可視化モジュールと連動させるフォーカス連動処理を記...
-mouseMoved() メソッドを修正します
-フォーカス情報のうち,メインキーワードにマウスで触ったキ...
-これにより,メインキーワードを利用している他の可視化モジ...
public void mouseMoved(MouseEvent me)
{
mouseX = me.getX();
mouseY = me.getY();
touchedKeywordNumber = (mouseX/cellX) + (mouseY/cellY) ...
if(touchedKeywordNumber != lastTouchedKeywordNumber)
{
text.focus.mainFocusKeyword = touchedKeywordNumber;
repaintOthersByTouch();
lastTouchedKeywordNumber = touchedKeywordNumber;
repaint();
}
}
*8)他の可視化モジュールからの連動を可能にする処理を記述し...
-displayOperations() メソッドを修正します
-フォーカス情報として格納されている メインキーワードを,...
-マウスで触ったときに動作させるためには,case 4501 番に記...
public void displayOperations(int optionNumber)
{
switch(optionNumber)
{
case 0:
repaint();
break;
case 4501:
touchedKeywordNumber = text.focus.mainFocusKeyword;
repaint();
break;
}
}
*9)他の処理モジュールと連動させるフォーカス連動処理を記述...
-マウスリスナーを追加します
**クラスの定義を修正します [#b60b3eae]
public class AllKeywords extends VisualizationModule imp...
**初期化用のメソッドを用いて,マウスリスナーを追加します ...
public void initializePanel()
{
addMouseMotionListener(this); //MouseMotionListener
addMouseListener(this); //MouseListener
}
**マウスリスナー用のメソッドをオーバーライドして,マウス...
//MouseListener
public void mousePressed(MouseEvent me){} //Press
public void mouseReleased(MouseEvent me){} //Release
public void mouseEntered(MouseEvent me){} //Enter an area
public void mouseExited(MouseEvent me){} //Exit an area
public void mouseClicked(MouseEvent me) //Click
{
if(touchedKeywordNumber >= 0 && touchedKeywordNumber < ...
executeOthersByClick();
}
-処理モジュールの処理には時間がかかることがありますので,...
*10)コンパイルして動作を確認します [#ye1b8aac]
-5),6),7),8),9)のそれぞれの修正を終えた段階で,コンパイル...
-5)で,キーワード一覧の表示,6)でマウスで触ったキーワード...
-7)の確認の方法
--他のパネルで,処理モジュール「マイニングなし」をセット...
--「連動可視化」が表示されているパネル下部の「キーワード...
--「全キーワード」モジュール内でキーワードを触ると,触っ...
-8)の確認の方法
--他のパネルでも,処理モジュール「マイニングなし」をセッ...
--どちらの「全キーワード」モジュール内のキーワードをマウ...
-9)の確認の方法
--''環境設定''の「ツール設定」で,処理ツールの「フォーカ...
--他のパネルの上部で,処理モジュール「フォーカスチェック...
--「全キーワード」モジュール内で,キーワードを触った状態...
終了行:
*チュートリアルで試せる内容 [#la4d60cc]
-[[可視化インタフェースモジュールの作り方]]
-[[パネルサイズに応じた表示更新]]
--5)まで、または6)まで
-[[フォーカス情報による可視化連動]]
--7)まで、または8)まで
-[[フォーカス情報による処理連動]]
*1)作成する処理モジュールの仕様を決めます [#j34764e3]
-[モジュール名] AllKeywords(全キーワード)
-[入力] なし
-[処理] すべてのキーワードをマトリクス(格子状のセル内)...
-[出力] すべてのキーワードを一覧で表示
*2)SampleDisplay2.java を利用して,モジュール作成の準備を...
-tetdmのフォルダ内の,moduleフォルダ内のVisualizationModu...
-コピーしてできたフォルダの名前を,作成するモジュール名「...
-コピーして作成したフォルダ内のファイル名を変更します
--SampleDisplay2.java -> AllKeywords.java
--SampleDisplay2.txt -> AllKeywords.txt (テキストファイル...
--必要に応じて,モジュール完成後にREADME.txtを修正します
*3)AllKeywords.java を編集し,プログラム作成の準備をしま...
-プログラム中の SampleDisplay2 と書かれている箇所をすべて...
---// AllKeywords.java Version 0.30
---package module.VisualizationModules.AllKeywords;
---public class AllKeywords extends VisualizationModule
---public AllKeywords()
**コンストラクタの記述の修正 [#nd606a02]
-モジュールのIDを決め,コンストラクタ内のメソッド setModu...
public AllKeywords()
{
setModuleID(9978); // Set your module ID after you have...
}
*4)一度コンパイルして,AllKeywordsモジュールの動作を確認...
-make または ant コマンドでコンパイルします
-コンパイル後TETDMプログラムを起動して,いずれかのテキス...
-''環境設定''の「ツール設定」で,処理ツール「マイニングな...
-パネル上部のモジュール選択メニューで処理モジュールに「マ...
-楕円とテキストの一文目が表示されるのを確認して下さい
(SampleDisplay2.java の処理)
-以下,5),6),7),8),9)のそれぞれの修正を終えた段階で,コン...
--7),8),9)の動作確認の方法は,10)を参照して下さい
*5)キーワードの一覧を表示するプログラムを作成します [#ea3...
-一つのセルの最小サイズを100x20として,パネルの表示領域を...
-パネルのサイズは,paintComponent() メソッド内の,getPane...
**セルのサイズに関する変数を,グローバル領域で宣言します ...
int xNumber;(横のセルの数)
int yNumber;(縦のセルの数)
int cellX;(横のセルのサイズ)
int cellY;(縦のセルのサイズ)
**drawData() 内でセルの表示,およびキーワードを表示する処...
public void drawData(Graphics2D g2)
{
xNumber = sizeX/100;
yNumber = sizeY/20;
cellX = sizeX/xNumber;
cellY = sizeY/yNumber;
g2.setColor(Color.white);
for(int i=0;i<xNumber;i++)
g2.drawLine(cellX*i,0,cellX*i,sizeY);
for(int i=0;i<yNumber;i++)
g2.drawLine(0,cellY*i,sizeX,cellY*i);
g2.setFont(new Font("Dialog", Font.BOLD, 20));
for(int i=0;i<yNumber;i++)
for(int j=0;j<xNumber;j++)
{
if(i*xNumber+j == text.keywordNumber)
return;
g2.drawString(text.keyword[i*xNumber+j].word, j*cellX...
}
}
*6)マウスで触っているキーワードをハイライトする処理を追加...
**クラスの定義を修正します [#r804e1ed]
public class AllKeywords extends VisualizationModule imp...
**マウスの座標,触っているキーワードに関する変数を,グロ...
int mouseX;
int mouseY;
int lastTouchedKeywordNumber;
int touchedKeywordNumber;
**初期化用のメソッドを用いて,マウスモーションリスナーを...
public void initializePanel()
{
addMouseMotionListener(this); //MouseMotionListener
}
public void initializeData()
{
lastTouchedKeywordNumber = -1;
touchedKeywordNumber = -1;
}
**マウスモーションリスナー用のメソッドをオーバーライドし...
//MouseMotionListener
public void mouseDragged(MouseEvent me){}
public void mouseMoved(MouseEvent me)
{
mouseX = me.getX();
mouseY = me.getY();
touchedKeywordNumber = (mouseX/cellX) + (mouseY/cellY) ...
if(touchedKeywordNumber != lastTouchedKeywordNumber)
{
lastTouchedKeywordNumber = touchedKeywordNumber;
repaint();
}
}
**マウスで触ったキーワードをハイライトする処理を追加しま...
public void drawTouched(Graphics2D g2)
{
if(touchedKeywordNumber >= 0 && touchedKeywordNumber < ...
{
g2.setColor(Color.yellow);
g2.drawString(text.keyword[touchedKeywordNumber].word,
(touchedKeywordNumber%xNumber)*cellX, (touchedKeyword...
}
}
//////////paint
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D)g;
getPanelSize();
drawBackground(g2);//background
drawData(g2);
drawTouched(g2);
}
*7)他の可視化モジュールと連動させるフォーカス連動処理を記...
-mouseMoved() メソッドを修正します
-フォーカス情報のうち,メインキーワードにマウスで触ったキ...
-これにより,メインキーワードを利用している他の可視化モジ...
public void mouseMoved(MouseEvent me)
{
mouseX = me.getX();
mouseY = me.getY();
touchedKeywordNumber = (mouseX/cellX) + (mouseY/cellY) ...
if(touchedKeywordNumber != lastTouchedKeywordNumber)
{
text.focus.mainFocusKeyword = touchedKeywordNumber;
repaintOthersByTouch();
lastTouchedKeywordNumber = touchedKeywordNumber;
repaint();
}
}
*8)他の可視化モジュールからの連動を可能にする処理を記述し...
-displayOperations() メソッドを修正します
-フォーカス情報として格納されている メインキーワードを,...
-マウスで触ったときに動作させるためには,case 4501 番に記...
public void displayOperations(int optionNumber)
{
switch(optionNumber)
{
case 0:
repaint();
break;
case 4501:
touchedKeywordNumber = text.focus.mainFocusKeyword;
repaint();
break;
}
}
*9)他の処理モジュールと連動させるフォーカス連動処理を記述...
-マウスリスナーを追加します
**クラスの定義を修正します [#b60b3eae]
public class AllKeywords extends VisualizationModule imp...
**初期化用のメソッドを用いて,マウスリスナーを追加します ...
public void initializePanel()
{
addMouseMotionListener(this); //MouseMotionListener
addMouseListener(this); //MouseListener
}
**マウスリスナー用のメソッドをオーバーライドして,マウス...
//MouseListener
public void mousePressed(MouseEvent me){} //Press
public void mouseReleased(MouseEvent me){} //Release
public void mouseEntered(MouseEvent me){} //Enter an area
public void mouseExited(MouseEvent me){} //Exit an area
public void mouseClicked(MouseEvent me) //Click
{
if(touchedKeywordNumber >= 0 && touchedKeywordNumber < ...
executeOthersByClick();
}
-処理モジュールの処理には時間がかかることがありますので,...
*10)コンパイルして動作を確認します [#ye1b8aac]
-5),6),7),8),9)のそれぞれの修正を終えた段階で,コンパイル...
-5)で,キーワード一覧の表示,6)でマウスで触ったキーワード...
-7)の確認の方法
--他のパネルで,処理モジュール「マイニングなし」をセット...
--「連動可視化」が表示されているパネル下部の「キーワード...
--「全キーワード」モジュール内でキーワードを触ると,触っ...
-8)の確認の方法
--他のパネルでも,処理モジュール「マイニングなし」をセッ...
--どちらの「全キーワード」モジュール内のキーワードをマウ...
-9)の確認の方法
--''環境設定''の「ツール設定」で,処理ツールの「フォーカ...
--他のパネルの上部で,処理モジュール「フォーカスチェック...
--「全キーワード」モジュール内で,キーワードを触った状態...
ページ名: