チュートリアルで試せる内容

1)作成する処理モジュールの仕様を決めます

2)SampleDisplay2.java を利用して,モジュール作成の準備をします

3)DotDistribution.java を編集し,プログラム作成の準備をします

コンストラクタの記述の修正

	public BarGraph()
	{
		setModuleID(9912);	// Set your module ID after you have got it
		dataNumbers = new int[]{0,0,0,0,    // b,i,d,S
				0,0,2,0,    // bA,iA,dA,SA
				0,0,0};     // bA2,iA2,dA2
		setToolType(3);	
	}

4)一度コンパイルして,XYDistributionモジュールの動作を確認します

5)XY分布を表示するプログラムを作成します

ファイルからの日本語の読み込み(今回は不要)

処理モジュールからデータを受け取り,XY分布の表示に必要なデータを保存する変数を,グローバル領域で宣言します

	double valueX[];
	double valueY[];

initializeData() 内で変数の初期化を行います(オーバーライド)

	public void initializeData()
	{
		valueX = new double[1];
		valueY = new double[1];
	}

処理モジュールからデータを受け取るメソッド,setDataを作成します(オーバーライド)

	public boolean setData(int dataID, double data[])
	{
		switch(dataID)
		{
			case 0:
				valueX = data;
				return true;
			
			case 1:
				valueY = data;
			
				if(valueX.length == valueY.length)
				{
					repaint();
					return true;
				}
				return false;
		}
		return false;		
	}

XY分布の表示プログラムを作成します

	double maxX,minX,maxY,minY;
	int width,height;
	//background
	public void drawBackground(Graphics2D g2)
	{
		g2.setColor(Color.black);
		g2.fillRect(0,0, sizeX, sizeY);
	}
	public void drawDistribution(Graphics2D g2)
	{
		width = sizeX - 40;
		height = sizeY - 40;
		
		maxX = minX = valueX[0];
		for(int i=1;i<valueX.length;i++)
		{
			if(valueX[i] > maxX)
				maxX = valueX[i];
			if(valueX[i] < minX)
				minX = valueX[i];
		}
		
		if(maxX == minX)
			return;
		
		maxY = minY = valueY[0];
		for(int i=1;i<valueY.length;i++)
		{
			if(valueY[i] > maxY)
				maxY = valueY[i];
			if(valueY[i] < minY)
				minY = valueY[i];
		}
		
		if(maxY == minY)
			return;
		
		g2.setColor(Color.yellow);        
		for(int i=0;i<valueX.length;i++)
			g2.fillOval((int)(20 + width * (maxX - valueX[i])/(maxX - minX)),
			sizeY - (int)(20 + height * (maxY - valueY[i])/(maxY - minY)), 10,10);
		}
	//////////paint
	public void paintComponent(Graphics g)
	{
		Graphics2D g2 = (Graphics2D)g;
		
		getPanelSize();	
		
		drawBackground(g2);		//background		
		drawDistribution(g2);
	}
	public void update(Graphics g)		//avoid from blinking
	{
		paintComponent(g);
	}

6)コンパイルして動作を確認します


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS