こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Java JPanelを使ったコードについての質問です

Java JPanelを使ったコードについての質問です
ごめんなさい。切れてしまいました・・・
http://soudan1.biglobe.ne.jp/qa5885595.htmlからの質問です
下記がコードの続きです。どうぞよろしくお願いします
public void actionPerformed(ActionEvent bt)
{
dop.repaint();
}
class DrawOvalPane extends JPanel
{
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);

if((t1.getText().equals("") || t1.getText().equals(null)) &&
(t2.getText().equals("") || t2.getText().equals(null)) &&
(t3.getText().equals("") || t3.getText().equals(null)) &&
(t4.getText().equals("") || t4.getText().equals(null)))
{
return;
}
try
{
h = Integer.parseInt(t1.getText());
m = Integer.parseInt(t2.getText());
l = Integer.parseInt(t3.getText());
n = Integer.parseInt(t4.getText());
}
catch (NumberFormatException nfe)
{
System.out.println(nfe);
}
int total = h + m + l + n;
w = 360 * (h/total);
x = 360 * (m/total);
y = 360 * (l/total);
z = 360 * (n/total);
g.setColor(Color.red);
g.fillArc(200, 100, 300, 300, 90, -w);
g.setColor(Color.blue);
g.fillArc(200, 100, 300, 300, 90-w, -x);
g.setColor(Color.yellow);
g.fillArc(200, 100, 300, 300, 90-w-x, -y);
g.setColor(Color.pink);
g.fillArc(200, 100, 300, 300, 90-w-x-y, -z);
}
}
public Dimension getMinimumSize()
{
return new Dimension(700,550);
}
public Dimension getPreferredSize()
{
return getMinimumSize();
}
class SampleActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
dop.repaint();
}
}
}

投稿日時 - 2010-05-10 18:04:51

QNo.5885609

すぐに回答ほしいです

質問者が選んだベストアンサー

エラーの原因はimport文が無いからです。
以下のimport文を追加してください。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

この事以外では角度の計算部分でintだけを使って計算しているので計算結果がゼロになってしまい円グラフが表示できません。
計算途中でdoubleも利用すると解決できます。
例としてはこんな感じです。

double total = h + m + l + n;
double wd = 360 * (h/total);
w = (int)wd ;

double xd = 360 * (m/total);
x = (int) xd;

double yd = 360 * (l/total);
y = (int)yd;

z = 360 - w -x -y ;

投稿日時 - 2010-05-10 21:46:50

お礼

ありがとうございます、無事解決しました!
import文は文字制限が理由で外してました・・・
円グラフのfillArcはintじゃないと0が取られるのですね。
助かりました、また機会があったらよろしくお願いします!

投稿日時 - 2010-05-11 07:42:40

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問