
最近プログラミングを習いだし、1つずつ色々独学で学んでいて、
本に載っている範囲で勉強しているます。
ここから下のプログラミングでは1つしか線を1つしか引けないのですが、これを何個も線を引くようにするにはどうすればいいか教えてください!
mport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Challnege13 extends JApplet {
private static final long serialVersionUID = 1L;
int Px=0,Py=0; // 直前の位置。
int Cx,Cy; // 現在の位置。
JPanel p;
// initメソッドの定義。
public void init() {
// アプレットからコンテンツペインを取得。
Container c = this.getContentPane();
// コンテンツペインのレイアウトマネージャをBorderLayoutに設定。
c.setLayout(new BorderLayout());
// パネルを定義(匿名クラス)。
p = new JPanel() {
/**
*
*/
private static final long serialVersionUID = 1L;
public void paintComponent(Graphics g) {
super.paintComponent(g);
// 直線描画。
if( (Px == 0)&&(Py == 0) ) { Px = Cx; Py = Cy; }
g.drawLine(Px,Py,Cx,Cy);
// 直前の位置を更新。
Px = Cx; Py = Cy;
}
};
// コンテンツペインに追加。
c.add(p,BorderLayout.CENTER);
// イベントリスナを定義(匿名クラス)。
MouseAdapter ma = new MouseAdapter() {
// mouseClickedメソッドの定義。
public void mouseClicked(MouseEvent e) {
Cx = e.getX(); // クリックした点のx座標を取得する。
Cy = e.getY(); // クリックした点のy座標を取得する。
p.repaint();
}
};
// イベントリスナの登録。
this.addMouseListener(ma);
}
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
クリックした順につなぐだけでいいのでしたら
ArrayListなどでクリックしたポイントを覚えておいて
paintComponentでその順に描画すれば良いでしょう
Challnege13 のメンバーに
ArrayList<Point> myList = new ArrayList<Point>();
を追加
mouseClickedハンドラで
Point pt = new Point( Cx, Cy );
myList.add( pt );
を追加
paintComponentのオーバーライドの中身を
int nLen = myList.Size();
if ( nLen < 1 ) {
return;
}
Point[] pts = new Point[ nLen ];
myList.ToArray( pts );
for( int n = 1; n < nLen; n++ ) {
g.drawLine( pts[n-1].x, pts[n-1].y, pts[n].x, pts[n].y );
}
といった具合でしょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
JAVA エラー 式の開始が不正で...
-
java spring でエラーが出て困...
-
式の型は配列型で int に解決済...
-
複数のボタンを配置し、それぞ...
-
javaの画像解析(RGB)
-
イメージのリサイズが表示されない
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
JavaScriptの変数をjavaのメソ...
-
ORA-01858: 数値を指定する箇所...
-
VBAで配列の計算
-
javaで質問です。 文字列2023/2...
-
JScrollPaneで、表示がおかしく...
-
JavaScriptを使ってロト6の当...
-
streamで送信されたArrayListを...
-
JavaScriptとVBScriptに関して
-
IF関数でEmpty値を設定する方法。
-
動的配列が存在(要素が有る)か...
-
ループ処理の際、最後だけ","を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
C#で実行時にメソッドの返り値...
-
メインが含まれていません
-
(Swing)JTextFieldを半角のみ入...
-
javaでcsvファイル読込時の改行...
-
式の型は配列型で int に解決済...
-
JAVA エラー 式の開始が不正で...
-
C言語からJavaに書き換えの質...
-
前の月を取得したいです。
-
行の途中から読み込む方法
-
素数のみの足し算
-
Java 初心者 int型の取り扱い方
-
共有メモリについて
-
DataSet(DataTable)の使い方
-
c# デリゲート関連の命名について
-
先入れ先出し法のプログラミン...
-
java spring でエラーが出て困...
-
JAVAでCの関数ポインタのような...
-
誰か~誰か~誰か~一生のお願...
-
いまいちfor文が分かりません ...
おすすめ情報