🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

Q&A

解決済

1回答

1885閲覧

Java お絵描きアプリで色を付けたい

moyashi_lost

総合スコア5

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

0グッド

0クリップ

投稿2020/12/18 16:19

前提・実現したいこと

お絵描きアプリを作成しているのですが、チェックボックスで色を指定しその色で図形を描画できるようにしたいです。
ここに質問の内容を詳しく書いてください。
知識不足で申し訳ありませんが、具体的なコードを書いていただけるとありがたいです。

該当のソースコード

ソースコード

@Override public void mousePressed(MouseEvent e) {
Checkbox c,co;
x=e.getX();
y=e.getY();
c=cbg.getSelectedCheckbox();
co=cbg_c.getSelectedCheckbox();
obj=null;
f=new Figure();

if(co==co1) { f.setPenColor(1); }else if(co==co2) { f.setPenColor(2); }else if(co==co3) { f.setPenColor(3); } if(c==c1) { mode=1; obj=new Circle(); } if(obj != null) { obj.moveto(x,y); repaint(); }

public class Figure extends Coord{
//Color currentColor=Color.red;
protected Color currentColor=new Color(0,0,0);
//Color currentColor=Color.blue;
int color;
int w,h;

Figure(){ color=0; w=h=0; } protected void setPenColor(int color) { this.color=color; //System.out.println(color); } public void paint(Graphics g) { //g.setColor(currentColor); //System.out.println(currentColor); } public void setWH(int w, int h) { this.w=w; this.h=h; }

}

public class Circle extends Figure{
Circle(){}
@Override public void paint(Graphics g) {
if(color==1) {
g.setColor(Color.red);
}
System.out.println(color);
int r = (int)Math.sqrt((double)(w * w + h * h));
g.drawOval(x - r, y - r, r * 2 , r * 2);

}

}

試したこと

サブクラスが欲しい値がローカル変数のためアクセスできないため色々やってみましたが駄目でした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/12/19 00:32

コードはマークダウン記法を用いて読みやすくするようにしてください。インデントも崩れ、読みづらいとそれだけで回答は離れがちになります。 https://teratail.com/help/question-tips#questionTips3-5-1 https://teratail.com/questions/238564 あたりを参考にしてソースコードを適切に表示するようにしてください。 また、使っているOSやJavaのバージョンも詳しく示しましょう。
TN8001

2020/12/19 08:36

moyashi_lostさん >サブクラスが欲しい値がローカル変数のため これはどれのことですか? もし図形が一種類だけなら動作するのですか? あなたにとっては自明でも第3者にはわかりようがないので、できればコード全文を書いてください。 あまりに長くなる場合は、色や図形の数を減らしたりしてコード量を減らします。 あとコードが正しく張れていません(インデントがなくなっており色もついていません) [質問するときのヒント|teratail(テラテイル)](https://teratail.com/help/question-tips#questionTips3-5-1 >具体的なコードを書いていただけるとありがたいです。 あなたもそう思いますよね?回答者も同じです。 class Coordはどんなだろう?cbg・cbg_cとは?等、 想像で復元しつつ実行できる状態にすること自体負担が大きいです。 ↓こちらはほぼやりたいこと+αになっているので、大変参考になると思います。 [Javaによる簡易ドローエディタの作成 - fcloutのブログ。](https://fclout.hateblo.jp/entry/20110528/1306553657
moyashi_lost

2020/12/20 03:24

初質問で仕方が分かっておらず、不快な思いをさせてしまい申し訳ありませんでした。また丁寧に指摘・回答していただきありがとうございます、自己解決しましたのでこれからは気を付けて利用させていただきます。
TN8001

2020/12/20 04:52

>初質問で仕方が分かっておらず 一通り読んでおいていただけたらと思います。 [ヘルプ|teratail(テラテイル)](https://teratail.com/help [質問するときのヒント|teratail(テラテイル)](https://teratail.com/help/question-tips >不快な思いをさせてしまい申し訳ありませんでした。 勘違いされているようですが、全く不快になってはいません。 teratailのスタンスに沿って、情報追加を求めただけです。 質問も回答も何度でも編集できます(そしてその編集履歴も皆が見れます) [3分でわかるteratail|teratail(テラテイル)](https://teratail.com/tour >情報が不足している質問や間違っている回答には、質問修正・追記依頼やコメントの機能を使ってみなさんにブラッシュアップをしていってもらいたいと考えています。 >明確なフィードバックをしあい、よりよい質問や回答ができるように正していくことも、将来的な問題解決につながると思うからです。 >また、そうして改善された質問・回答は、同じ疑問を持った別の人にとってもより役立つはずです。
guest

回答1

0

自己解決

自己解決いたしました。

投稿2020/12/20 03:24

moyashi_lost

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TN8001

2020/12/20 04:53

>自己解決いたしました。 これでは何の価値もないので低評価しました。編集されたら取り消します。 [質問をした後に自己解決してしまった - ヘルプ|teratail(テラテイル)](https://teratail.com/help#resolve-question#resolve-myself >また後から読む人のためにも、具体的な解決手順を記載してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問