Javaプログラミングでのネットワーク通信と例外の補足

このQ&Aのポイント
  • ネットワークを通じて送信する可能性のあるコマンド文字列とその働きを説明します。
  • 26,73行目のcatchで補足される可能性のある例外と、その発生箇所と原因を説明します。
  • Javaプログラミングでのネットワーク通信と例外の補足について解説します。
回答を見る
  • ベストアンサー

javaプログラミングの質問です。

1 ネットワークを通じて送信する可能性のあるコマンド文字列とその働きを書いてください。 2 26,73行目のcatchで補足される可能性のある例外と、その発生箇所と原因を書いてください。 2番は大変なので1番だけの解答でも大丈夫です。 よろしくお願いします。 1: import java.awt.event.*; 2: import java.awt.*; 3: import java.io.*; 4: import java.net.*; 5: 6: public class Test72 { 7: private MyCanvas c; 8: private BufferedWriter bw; 9: private BufferedReader br; 10: 11: public static void main( String[] args ) { 12: Test72 t72 = new Test72(); 13: t72.doEvent(); 14: } 15: 16: Test72(){ 17: Frame f = new Frame( "Test72" ); 18: f.setSize(640,480); 19: f.addWindowListener( new WindowAdapter() { 20: @Override public void windowClosing( WindowEvent e ) { 21: try { 22: bw.write( "quit" ); 44 23: bw.flush(); 24: bw.close(); 25: br.close(); 26: } catch( Exception e2 ) {} 27: System.exit( 0 ); 28: } 29: }); 30: c = new MyCanvas(); 31: c.addMouseListener( new MouseListener() { 32: @Override public void mouseClicked( MouseEvent e ) { 33: try { 34: bw.write( "setOval " + e.getX() + " " + e.getY() + "¥n" ); 35: bw.flush(); 36: c.setPoint( e.getX(), e.getY() ); 37: } catch( Exception e2 ) {} 38: } 39: @Override public void mouseEntered( MouseEvent e ) {} 40: @Override public void mouseExited( MouseEvent e ) {} 41: @Override public void mousePressed( MouseEvent e ) {} 42: @Override public void mouseReleased( MouseEvent e ) {} 43: }); 44: c.addMouseMotionListener( new MouseMotionListener() { 45: @Override public void mouseDragged( MouseEvent e ) { 46: try { 47: bw.write( "setOval " + e.getX() + " " + e.getY() + "¥n" ); 48: bw.flush(); 49: c.setPoint( e.getX(), e.getY() ); 50: } catch( Exception e2 ) {} 51: } 52: @Override public void mouseMoved( MouseEvent e ) {} 53: }); 54: f.add( c ); 55: f.setVisible( true ); 56: } 57: 58: public void doEvent() { 59: try { 60: InetSocketAddress socketAddress = 61: new InetSocketAddress( "localhost", 8000 ); 62: Socket socket = new Socket(); 63: socket.connect( socketAddress, 10000 ); 64: InetAddress inadr; 65: if( ( inadr = socket.getInetAddress() ) != null ){ 66: System.out.println( "Connect to " + inadr ); 67: } else { 68: System.out.println( "Connection failed" ); 69: System.exit( 0 ); 70: } 71: bw = new BufferedWriter( new OutputStreamWriter( socket.getOutputStream() ) ); 72: br = new BufferedReader( new InputStreamReader( socket.getInputStream() ) ); 73: } catch( Exception e ) {} 74: } 75: }

  • Java
  • 回答数3
  • ありがとう数6

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

ひとつずつ調べて、ネットワークに送信するメソッドがどれか特定する ↓ そのメソッドで送信されるのはどんな文字列か調べる という手順で追いかけてください。 その上で、わからない点があれば、そのわからない箇所がどのように理解できないのか、具体的に示してください。 たとえば f.setSize(640,480); は f→ Frameのインスタンス →Frame.setSizeメソッドのマニュアルを読む →ネットワークに関係ない とわかりますよね? これすらわからない、というのなら、理解が足りないです。教科書を戻って理解できるまで復習してください。 こういう手間をかける気が無い、という場合は、プログラミングに向いてません。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

1もやりかたは同じです。 熟練者なら、一通り眺めるだけでわかるかもしれませんが、 そうでないなら、一つずつ確認するだけです。

takki-a
質問者

補足

すみませんが自分には1番わからないので説明おねがいできませんか?

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

2番も簡単です。 そのcatchに対応するtryの中にあるものについて、マニュアルで調べるだけですから。 26行なら bw.write( "quit" ); bw.flush(); bw.close(); br.close(); の4つが対象。 private BufferedWriter bw; private BufferedReader br; なのだから、BufferdWriter,BufferdReaderのそれぞれのメソッドのマニュアルを読めばいい。 例えば、 bw.write("quit") なら、 BufferWriterのマニュアルを読む http://docs.oracle.com/javase/jp/6/api/java/io/BufferedWriter.html ここにwrite(String)というメソッドは無いが、Writerから継承されるものとして write(String) があるので、Writerのマニュアルを読む。 http://docs.oracle.com/javase/jp/6/api/java/io/Writer.html#write%28java.lang.String%29 > 例外: > IOException - 入出力エラーが発生した場合 発生する例外と、その内容が簡単に書いてある。 あとは、おなじみの 「NullPointerException」

takki-a
質問者

補足

ありがとうございます。出来れば1番もお願いします。

関連するQ&A

  • javaプログラムの質問です。お願いします

    1このプログラムの全てのインスタンス変数について、変数名を書いてください。 2全てのメソッド名を書いてください。 よろしくお願いします。 1: import java.awt.event.*; 2: import java.awt.*; 3: import java.io.*; 4: import java.net.*; 5: 6: public class Test71 { 7: private MyCanvas c; 8: public static void main( String[] args ) { 9: Test71 t71 = new Test71(); 10: t71.doEvent(); 11: } 12: 13: Test71() { 14: Frame f = new Frame( "Test71" ); 15: f.setSize( 640, 480 ); 16: f.addWindowListener( new WindowAdapter() { 17: @Override public void windowClosing( WindowEvent e ) { 18: System.exit( 0 ); 19: } 20: }); 21: c = new MyCanvas(); 22: f.add( c ); 23: f.setVisible( true ); 24: } 25: 26: public void doEvent(){ 27: try{ 28: ServerSocket ss = new ServerSocket( 8000 ); 29: while( true ) { 30: Socket socket = ss.accept(); 31: BufferedReader br = new BufferedReader( new InputStreamReader( socket.getInputStream() ) ); 32: BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( socket.getOutputStream() ) ); 33: while( true ) { 34: String command = br.readLine(); 35: String[] words = command.split( " " ); 36: System.out.println( command ); 37: if( words[0].equalsIgnoreCase( "setOval" ) ) { 38: try { 39: c.setPoint( Integer.parseInt( words[1] ), Integer.parseInt( words[2] ) ); 40: } catch( Exception e ) {} 41: } else if( words[0].equalsIgnoreCase( "changeMode" ) ) { 42: //描画方式を変更する処理 43: } 44: else if( words[0].equalsIgnoreCase( "quit" ) ) { 45: break; 46: } 47: } 48: bw.close(); 43 49: br.close(); 50: socket.close(); 51: } 52: } catch( Exception e ) { 53: e.printStackTrace(); 54: } 55: } 56: }

    • ベストアンサー
    • Java
  • javaプログラムの問題です

    1このプログラムの全てのインスタンス変数について、変数名と大まかな役割を書いてください。 c MyCanvasを呼び出す t71 Test71を呼び出す f フレームを呼び出す br 文字列を読み込み bw 文字列を書き込む これであっているかをお願いします。 2全てのメソッド名と大まかな役割を書いてください。 メソッド名 main javaの基本(どのプログラムでも使う) windowClosing ウィンドウを閉じる doEvent 送られてきた処理により何かをする こちらもあっているかをお願いします。 間違っているなら何が違うかを教えてください。 プログラム始めたばかりの初心者ですみません。 よろしくお願いします。 1: import java.awt.event.*; 2: import java.awt.*; 3: import java.io.*; 4: import java.net.*; 5: 6: public class Test71 { 7: private MyCanvas c; 8: public static void main( String[] args ) { 9: Test71 t71 = new Test71(); 10: t71.doEvent(); 11: } 12: 13: Test71() { 14: Frame f = new Frame( "Test71" ); 15: f.setSize( 640, 480 ); 16: f.addWindowListener( new WindowAdapter() { 17: @Override public void windowClosing( WindowEvent e ) { 18: System.exit( 0 ); 19: } 20: }); 21: c = new MyCanvas(); 22: f.add( c ); 23: f.setVisible( true ); 24: } 25: 26: public void doEvent(){ 27: try{ 28: ServerSocket ss = new ServerSocket( 8000 ); 29: while( true ) { 30: Socket socket = ss.accept(); 31: BufferedReader br = new BufferedReader( new InputStreamReader( socket.getInputStream() ) ); 32: BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( socket.getOutputStream() ) ); 33: while( true ) { 34: String command = br.readLine(); 35: String[] words = command.split( " " ); 36: System.out.println( command ); 37: if( words[0].equalsIgnoreCase( "setOval" ) ) { 38: try { 39: c.setPoint( Integer.parseInt( words[1] ), Integer.parseInt( words[2] ) ); 40: } catch( Exception e ) {} 41: } else if( words[0].equalsIgnoreCase( "changeMode" ) ) { 42: //描画方式を変更する処理 43: } 44: else if( words[0].equalsIgnoreCase( "quit" ) ) { 45: break; 46: } 47: } 48: bw.close(); 43 49: br.close(); 50: socket.close(); 51: } 52: } catch( Exception e ) { 53: e.printStackTrace(); 54: } 55: } 56: }

    • ベストアンサー
    • Java
  • Javaのアプレットについて質問です。

    星型の図形をアプレットビューワ上でマウスを押した場所に移動させたいのですが・・・ import java.applet.Applet; import java.awt.Graphics; import java.awt.Color; import java.awt.Font; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; import java.awt.Polygon; public class Enshu1_5 extends Applet implements MouseListener { int px []={100,80,10,70,40,100,160,130,190,120}; int py []={10,75,75,113,190,140,190,113,75,75}; private Polygon poly = new Polygon(px,py,10 ); public void init() { addMouseListener(this); } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void paint(Graphics g) { g.setColor(Color.red); g.fillPolygon(poly); g.setFont(new Font("serif",Font.BOLD,24)); g.drawString("Star",100,200); } } こんな感じでつくってみたのですが現在位置とクリック位置との差分割り出し方をpublic void mouseClicked(MouseEvent e)の所に書きたいのですが普通にpoly.translate( e.getX(), e.getY() );をしてしまうと原点からの移動になってしまうため、フィールド上にint x=0,y=0をつくりmouseClickedのところで if(e.getX()>x&&e.getY()>y) { int dx=e.getX()-x; int dy=e.getY()-y; x=dx; y=dy; poly.translate(dx,dy); repaint(); }の様な感じで考えられる条件を条件分岐していこうと思ったのですがどうもうまくいきませんしかなりかさばったものになってしまうと思います。何かいい方法はないでしょうか? 教えて下さい><

    • ベストアンサー
    • Java
  • またまたすいません、Javaについて質問です

    閲覧ありがとうございます。 現在Javaで簡単なお絵描きソフトを作成しているのですが、ResetButtonを押すと 画面をクリアしたいのですが、ResetButtonを押すと画面はクリアしますが、何故か 左上にResetButtonが描画されてしまいます・・・何故でしょうか? ソースは以下の通りです。(また文字数制限に引っかかったので、一部省略してかいてあります。) import java.awt.event.*; import java.awt.*; import javax.swing.*; /*+++ メインクラス +++*/ public class java_test_04 extends JFrame implements ActionListener { int x1, y1; //描画始点 int x2, y2; //描画次点 MyPanel mp = new MyPanel(); //マイパネルを作成 JButton resetButton = new JButton("Reset"); //リセットボタンを作成 Dimension size; public static void main(String[] args) { new java_test_04(); } public java_test_04() { setLayout(null); setTitle("お絵かき"); //フレームタイトルを設定 setSize(400, 400); //フレームサイズを設定 /*+++ リセットボタンの設定 +++*/ resetButton.setBounds(0, 300, 70, 25); //リセットボタンの表示座標・サイズを設定 resetButton.addActionListener(this); //リセットボタンにアクションイベントを追加 getContentPane().add(resetButton); //リセットボタンを追加 /*+++ マイパネルの設定 +++*/ size = Toolkit. getDefaultToolkit(). getScreenSize(); //フレームのサイズを取得 mp.setBackground(Color.red); //マイパネルの背景色を青に mp.setBounds(0, 0, size.width, 250); //マイパネルの表示座標・サイズを設定 getContentPane().add(mp); //マイパネルを追加 setVisible(true); //フレームを表示 setDefaultCloseOperation(EXIT_ON_CLOSE); //クローズ処理 } @Override public void actionPerformed(ActionEvent arg0) { if (resetButton == arg0.getSource()) { //リセットボタンが押されたら mp.repaint(); //グラフィックをリセット try { Thread.sleep(100); } catch(Exception ex) { System.out.println("[ERR!]" + ex); } } } /*+++ マイパネルクラス +++*/ class MyPanel extends JPanel implements MouseListener,MouseMotionListener{ private static final long serialVersionUID = 1L; MyPanel() { addMouseMotionListener(this); //マウスモーションイベントを追加 addMouseListener(this); //マウスイベントを追加 } /*+++ マウスを押したとき +++*/ public void mousePressed(MouseEvent e) { e.consume(); x1 = x2 = e.getX(); y1 = y2 = e.getY(); paintComponent(getGraphics()); } /*+++ マウスをドラッグしているとき +++*/ public void mouseDragged(MouseEvent e) { e.consume(); x2 = e.getX(); y2 = e.getY(); paintComponent(getGraphics()); //描画 x1 = e.getX(); //これが新たな y1 = e.getY(); //始点となる } /*+++ マウスが動いているとき +++*/ public void mouseMoved(MouseEvent e) { } /*+++ マウスボタンが離されたとき +++*/ public void mouseReleased(MouseEvent e) { } /*+++ マウスがフレーム内に入ったとき +++*/ public void mouseEntered(MouseEvent e) { } /*+++ マウスがフレーム外に出たとき +++*/ public void mouseExited(MouseEvent e) { } /*+++ マウスがクリックされたとき +++*/ public void mouseClicked(MouseEvent e) { } /*+++ ペイントメソッド +++*/ public void paintComponent(Graphics g) { g.drawLine(x1, y1, x2, y2); } } }

    • ベストアンサー
    • Java
  • javaの画像の表示のプログラムとmouselistenerのプログラ

    javaの画像の表示のプログラムとmouselistenerのプログラム(それぞれ↓にあります)をひとつに合わせたいのですがどうすればいいでしょうか? import java.awt.event.*; import javax.swing.*; class MyPanel extends JPanel implements MouseListener{ public MyPanel() { addMouseListener(this); } public void mouseClicked(MouseEvent e) { int x=e.getX(); int y=e.getY(); System.out.println("マウスがクリックされました (" + e.getX() + ", " + e.getY() + ")"); if((x<100&&x>40)&&(y<100&&y>40)){ System.out.println("範囲内"); }else{ System.out.println("aaa"); } } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } } public class MouseEventExample extends JFrame { public static void main(String[] args) { new MouseEventExample(); } MouseEventExample() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); getContentPane().add(new MyPanel()); setSize(300, 200); setVisible(true); } } ======↑のプログラムと↓のプログラムを合わせたいのです package novel; import java.awt.*; import java.awt.geom.*; import java.awt.event.*; import javax.swing.*; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import java.io.IOException; public class Java2dTest extends JFrame{ public static void main(String[] args){ Java2dTest test = new Java2dTest(); test.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){System.exit(0);} }); test.setBounds( 0, 0, 200, 200); test.setVisible(true); } public void paint(Graphics g){ Graphics2D g2 = (Graphics2D)g; BufferedImage readImage = null; try { readImage = ImageIO.read(new File("sample.png")); } catch (Exception e) { e.printStackTrace(); readImage = null; } if (readImage != null){ g2.drawImage(readImage, 0, 0, this); } } }

  • 【アプレット】マウスイベントについて

    【アプレット】マウスイベントについて 現在、マウスに円をリンクさせています 1回左クリックするとその場所で円が停止し、もう1回左クリックするとまた動きだし、もう1回左クリックするとその場所で円が停止し、・・・の繰り返しを行いたいです なにかアドバイスをください。 作ってるのに近いプログラム ↓ import java.applet.* ; import java.awt.*; import java.awt.event.*; public class test extends Applet { int posX = 50; int posY = 50; public void paint(Graphics g) { g.setColor(Color.red); g.fillOval(posX, posY, 50, 50); } public void mousePressed( MouseEvent e ){ x = e.getX(); y = e.getY(); repaint(); } public void init () { this.setSize(200, 200); this.setVisible(true); addMouseMotionListener(new MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { posX = e.getX(); posY = e.getY(); repaint(); } public void mousePressed( MouseEvent e ){ x = e.getX(); y = e.getY(); repaint(); } public void mouseReleased(MouseEvent e){ } public void mouseClicked(MouseEvent e){ } public void mouseEntered(MouseEvent e){ } public void mouseExited(MouseEvent e){ } }); } }

  • JAVAのアプレットのアニメーションの質問

    javaのアプレットに関する質問なんですが、今次の条件でアニメーションを作っているんですが、どうしても解決できない問題があります。 赤い長方形が左から右に動いていくプログラムを作成する。 ・ 長方形が描画領域 の右端に消えると左端から再 度出現するようにせよ。 ・ Reverseと書かれたボタンを押すと長方形の進行方 向が左右反対になる。 ・ このとき、左右どちらの端に長方形が消えた場合も 反対端から長方形は出現する。 ・ 長方形をクリック(ボタン押下)すると長方形の色が 変化する。 ・ 赤い長方形であれば青に、青い長方形であれば赤 に変化する。 この条件でつくろうと思っているのですが、長方形をクリックしたときに、色の変化がどうしてもできません。どこに問題があるか分かりません。御教授お願いします。 import java.applet.Applet; import java.awt.Graphics; import java.awt.Color; import java.awt.Font; import java.awt.Button; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.MouseListener; public class Report2 extends Applet implements Runnable,ActionListener,MouseListener{ int x=100; int y=50; int width=80; int height=120; int dir=-2; int w; int z; Button bt; boolean direction; boolean colorRed; public void actionPerformed(ActionEvent ae){ if(direction==true){ direction=false; } else{ direction=true; } } public void init(){ bt=new Button("Reverse"); add(bt); bt.addActionListener(this); Thread th; th =new Thread(this); th.start(); addMouseListener(this); } public void mouseClicked(MouseEvent e){ w=e.getX(); z=e.getY(); repaint(); if(e.getX()>=x && e.getX()<=x+width && e.getY()>=y && e.getY()<=y+height){ colorRed=!colorRed; } } public void mouseEntered(MouseEvent e){ } public void mouseExited(MouseEvent e){ } public void mouseReleased(MouseEvent e){ } public void mousePressed(MouseEvent e){ w=e.getX(); z=e.getY(); repaint(); if(e.getX()>=x && e.getX()<=x+width && e.getY()>=y && e.getY()<=y+height){ colorRed=!colorRed; } } public void run() { while(true){ x++; if(x==400){ x=-80; } if(direction==true){ x=x+dir; } else{ } repaint(); try{ Thread.sleep(30); } catch(InterruptedException e){} } } public void paint(Graphics g){ g.setColor(Color.white); g.fillRect(0,0,400,200); g.setColor(Color.red); g.fillRect(x,y,80,120); if(colorRed=true){ g.setColor(Color.red); } if(colorRed=false){ g.setColor(Color.blue); } g.fillRect(x,y,width,height); g.setColor(Color.black); g.fillRect(x,y,10,10); } }

    • ベストアンサー
    • Java
  • Javaマウスイベント 応答速度の改善したい。。

    初心者です。 下記のプログラムを実行すると、 連続してクリックしたときに、何回か応答できない 場合があります。 解決策があるようでしtら、教えてください。 import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.Toolkit; import java.lang.String; import javax.swing.JFrame; import javax.swing.JPanel; public class jjj extends JFrame { public jjj() { add(new DrawPanel()); } public static void main(String[] A00) { Toolkit.getDefaultToolkit().setDynamicLayout(true); JFrame L00 = new jjj(); L00.setTitle("マウスの座標を表示"); L00.setDefaultCloseOperation(EXIT_ON_CLOSE); L00.setBackground(Color.white); L00.setSize(1920, 1200); L00.setVisible(true); } } class DrawPanel extends JPanel implements MouseListener { int I00 = 10; int I01 = 10; int w = 10; int h = 10; int a = 100; int b = 100; public DrawPanel() { setBackground(Color.white); addMouseListener(this); } public void paintComponent(Graphics g) { super.paintComponent(g); String L00 = String.format("(%d, %d)", I00, I01); g.drawString(L00, I00, I01); g.drawLine(0,0,I00, I01); g.drawRect(I00-a/2, I01-b/2, a, b); } public void mouseMoved(MouseEvent A00) { I00 = A00.getX(); I01 = A00.getY(); repaint(); } public void mouseDragged(MouseEvent A00) { I00 = A00.getX(); I01 = A00.getY(); int w = I00; int h = I01; repaint(); } public void mousePressed(MouseEvent A00) { } public void mouseReleased(MouseEvent A00) { } @Override public void mouseClicked(MouseEvent A00) { I00 = A00.getX(); I01 = A00.getY(); repaint(); } @Override public void mouseEntered(MouseEvent arg0) { } @Override public void mouseExited(MouseEvent arg0) { } }

    • ベストアンサー
    • Java
  • java リアルタイムでマウスの座標を取得したい

    マウスのリアルタイム座標を取得したいのですが、 以下のソースを作りました。 しかし、リアルタイムどころか、マウスをクリックしても座標が取得できません どこを修正すればいいのでしょうか? import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.awt.event.MouseEvent; import java.net.URL; import java.awt.Image; /*<applet code="applet001" width="640" height="480"></applet>*/ public class applet001 extends Applet implements MouseListener, MouseMotionListener { Dimension dim; int mouse_x, mouse_y; //アプレットの初期化時呼び出される public void init() { dim = getSize(); addMouseListener( this ); } public void update(Graphics g) //オーバーライドして最低限のことだけをする { paint(g); } public void paint(Graphics g) { g.drawString( "マウス:" + mouse_x + "," + mouse_y, 60, 120 ); g.fillOval(mouse_x,mouse_y,30,30); } // マウスの処理 public void mousePressed( MouseEvent e ) { mouse_x = e.getX(); mouse_y = e.getY(); } public void mouseClicked( MouseEvent e ) {} public void mouseReleased( MouseEvent e ) {} public void mouseEntered( MouseEvent e ) {} public void mouseDragged( MouseEvent e ) {} // public void mouseExited( MouseEvent e ) {} // public void mouseMoved( MouseEvent e ) { mouse_x = e.getX(); mouse_y = e.getY(); repaint(); } }

    • ベストアンサー
    • Java
  • ペイントソフトを作っているのですが・・・

    簡単な絵を書くプログラムを下のようにつくりました。 こんなようなソースが公開されているサイトをご存知のかたは教えていただけないでしょうか?? おねがいします!! import java.awt.*; import java.awt.event.*; public class mouse5 extends Frame implements MouseListener , MouseMotionListener{ //グローバル変数 int x0,y0; Color objectColor = Color.red; //コンストラクタ public mouse5(){ setSize(400,300); //マウスイベント addMouseListener(this); addMouseMotionListener(this); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } //paint public void paint(Graphics g){ } //マウスが押されたら public void mousePressed(MouseEvent e){ //始点の座標 x0 = e.getX(); y0 = e.getY(); } //マウスが放されたら public void mouseReleased(MouseEvent e){ } //マウスがクリックされたら public void mouseClicked(MouseEvent e){ } //マウスが画面に入ったら public void mouseEntered(MouseEvent e){ } //マウスが画面から出たら public void mouseExited(MouseEvent e){ } //マウスがドラックされたら public void mouseDragged(MouseEvent e){ //線を引く Graphics g = getGraphics(); g.drawLine(x0,y0,e.getX(),e.getY()); g.dispose(); //次のために始点を更新 x0 = e.getX(); y0 = e.getY(); } //マウスが動いたら public void mouseMoved(MouseEvent e){ } //main public static void main(String[] args) { Frame w = new mouse5(); w.show(); } }

    • ベストアンサー
    • Java

専門家に質問してみよう