C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: -Runnable-スレッドのキャスト


(過去ログ 139 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■81511 / inTopicNo.1)  -Runnable-スレッドのキャストに関するエラーです
  
□投稿者/ マニツコ (1回)-(2016/10/01(Sat) 22:45:58)

分類:[Java] 

今晩は、フレームにパネルを貼付け、そのパネルを上から下へ動かす
コードを書きましたが、下のようなエラーが出ました。

--------------------------------------------------
Exception in thread "main" java.lang.ClassCastException: 
MyFrame cannot be cast to java.lang.Runnable
at MyFrame.main(MyFrame.java:31)
----------------------------------------------------

MyFrameがRunnableへキャスト出来ないという内容のようですが、
どこをどのように修正してやればよいのでしょうか。

Javaに詳しい方是非宜しくお願いします。

//------------------------------------------------

public class MyFrame extends JFrame
{
	MyPanel myp;

	public MyFrame()
	{
		Container cnt = getContentPane();
		setBackground(Color.cyan);

		setSize(700,700);
		setLayout(null);

		setDefaultCloseOperation(EXIT_ON_CLOSE);

		myp = new MyPanel();
		myp.setSize(100,100);
		cnt.add(myp);
	}
	public static void main(String[] args)
	{
		MyFrame mf = new MyFrame();
		mf.setVisible(true);
		Thread th = new Thread((Runnable)mf);
		th.start();
	}
}

//------------------------------------------------

public class MyPanel extends JPanel implements Runnable
{
	int updown = 0;

	public MyPanel()
	{
		setBackground(Color.magenta);
	}

	public void run( )
	{
		while(updown <= 500)
		{
			updown = updown += 50;
			setLocation(500,updown);
		}
	}
}
//------------------------------------------------

引用返信 編集キー/
■81512 / inTopicNo.2)  Re[1]: -Runnable-スレッドのキャストに関するエラーです
□投稿者/ Azulean (716回)-(2016/10/01(Sat) 23:12:54)
Java は詳しくありませんが、コードを見てわかることを書いておきます。

No81511 (マニツコ さん) に返信
> MyFrameがRunnableへキャスト出来ないという内容のようですが、
> どこをどのように修正してやればよいのでしょうか。

よく見直してください。
MyFrame は Runnable を implements していませんよね。
Runnable を implements しているのは MyPanel です。

これらの継承関係が正しいとすれば、mf の中の myp を渡せないといけないのでは?
引用返信 編集キー/
■81513 / inTopicNo.3)  Re[2]: -Runnable-スレッドのキャストに関するエラーです
□投稿者/ マニツコ (2回)-(2016/10/02(Sun) 00:28:50)
Azulean さん回答有難う御座います。

> これらの継承関係が正しいとすれば、mf の中の myp を渡せないといけないのでは?

#その渡し方を質問しているのですが?
引用返信 編集キー/
■81514 / inTopicNo.4)  Re[3]: -Runnable-スレッドのキャスト
□投稿者/ Azulean (717回)-(2016/10/02(Sun) 00:51:53)
2016/10/02(Sun) 01:01:05 編集(投稿者)

No81513 (マニツコ さん) に返信
>>これらの継承関係が正しいとすれば、mf の中の myp を渡せないといけないのでは?
> #その渡し方を質問しているのですが?

「コードを書いてください」ではなく、「どこをどのように修正してやればよいのでしょうか」と問われていたので、方向性を示すことでも合致すると思って前回のコメントをしています。
おそらく、(Runnable)mf と書いているところを mf.myp とか、(Runnable)mf.myp とか、(Runnable)(mf.myp) とか、そういったコードに変えればよいのでは?
(他の言語経験やググったサンプルを見て回っての予想)

普段 Java を使っていない私が言うのも難ですが、本を読むとか、サンプルコードをいろいろと読むなどして応用できるようにしていただいた方が良いと思います。
自分がやりたいことと似ているサンプルがないかと探し回ることで、いろいろなコードを見ることができ、自分の引き出しを増やすことにつながります。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -