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

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

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

Re[2]: mainメソッドに記述したプログラムを短縮しメソッド化したい


(過去ログ 123 を表示中)

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

■73448 / inTopicNo.1)  mainメソッドに記述したプログラムを短縮しメソッド化したい
  
□投稿者/ java初心者 (4回)-(2014/09/26(Fri) 17:55:33)

分類:[Java] 

開発環境:メモ帳にて作成(eclipseは使用しておりません)
使用言語:java
version :1.7.0_67

昨日も質問しました。java初心者です。
しま様には的確なご指摘有難うございました。
又、閲覧されている皆様、宜しくお願い致します。

質問内容:
一つの画像を読み込み、任意の部分だけを表示するようにしていたのですが、表示する部分が多く、
毎回そのプログラムを、コピー → 貼り付け → 表示部分の選択箇所を修正。
としていたのですが、今後も増え続ける予定でおり、この表示プログラムをメソッド化したいと考えております。
今まで、自分なりにメソッド化の文章を考えて作成していたのですが、どうしても自分だけでは作成できず・・・。
この様な質問は大変失礼かとは思いますが、皆様のご助力を頂けたらと思っております。
どなたか、以下のソースを見て、メソッド化をして下さる方がおりましたら、宜しくお願いします。

/*----------画像の部分選択の表示---------*/
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.Font;
import java.awt.Color;
import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;

public class gazousyori{

 	public static void main(String[] args) throws java.io.IOException{
	
		//ウィンドウフレームを作成、表示
		JFrame	jf = new JFrame();						//インスタンス化とjfのオブジェクト化
		jf.setBounds( 50, 100, 1200, 550 );					//windowのサイズの設定
 		jf.setVisible( true );							//windowの表示
		jf.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );			//windowのxボタン有効化

 		//【親】パネルを作成し、フレームに貼り付け
		JPanel jp = new JPanel();						//パネルを新しく作成
		jp.setBackground( Color.BLACK );					//パネルの色を黒に設定
 		jf.add( jp );								//windowに黒色のパネルを貼り付け

		//【子】パネルを作成し、【親】パネルに貼り付け
		JPanel jpChild = new JPanel();						//パネルを新しく作成

		File	file = new File("vx_chara_all.png" );				//File形式をfileにインスタンス化
		BufferedImage ball = ImageIO.read( file );				//fileをBufferedImage ballに画像全体を読込
		
		int mapchip_width = 32;
		int mapchip_height = 32;

		{
        //Subimage mapchip_width,mapchip_height,〜mapchip_width32,mapchip_height32までの画像をbshortに読み込む
 		BufferedImage	bshort = ball.getSubimage( mapchip_width * 0, mapchip_height * 0, mapchip_width, mapchip_height );
		ImageIcon	ii = new ImageIcon( bshort );				//JLabel用に型変換
		JLabel jlImage = new JLabel( ii );					//jlImageにオブジェクトiiの画像を代入
		jlImage.setSize( mapchip_width, mapchip_height );			//画像のサイズを設定
		jp.add( jlImage );							//【親】パネルにjlImageを貼り付け
		}

		{
        //Subimage mapchip_width,mapchip_height,〜mapchip_width32,mapchip_height32までの画像をbshortに読み込む
		BufferedImage	bshort = ball.getSubimage( mapchip_width * 0, mapchip_height * 0, mapchip_width, mapchip_height );
		ImageIcon	ii = new ImageIcon( bshort );				//JLabel用に型変換
		JLabel jlImage = new JLabel( ii );					//jlImageにオブジェクトiiの画像を代入
		jlImage.setSize( mapchip_width, mapchip_height );			//画像のサイズを設定
		jp.add( jlImage );							//【親】パネルにjlImageを貼り付け
		}

		{
        //Subimage mapchip_width,mapchip_height,〜mapchip_width32,mapchip_height32までの画像をbshortに読み込む
		BufferedImage	bshort = ball.getSubimage( mapchip_width * 0, mapchip_height * 0, mapchip_width, mapchip_height );
		ImageIcon	ii = new ImageIcon( bshort );				//JLabel用に型変換
		JLabel jlImage = new JLabel( ii );					//jlImageにオブジェクトiiの画像を代入
		jlImage.setSize( mapchip_width, mapchip_height );			//画像のサイズを設定
		jp.add( jlImage );							//【親】パネルにjlImageを貼り付け
		}
	}
}

引用返信 編集キー/
■73449 / inTopicNo.2)  Re[1]: mainメソッドに記述したプログラムを短縮しメソッド化したい
□投稿者/ しま (85回)-(2014/09/26(Fri) 18:38:24)
No73448 (java初心者 さん) に返信
> 開発環境:メモ帳にて作成(eclipseは使用しておりません)
> 使用言語:java
> version :1.7.0_67
> 
> 昨日も質問しました。java初心者です。
> しま様には的確なご指摘有難うございました。
> 又、閲覧されている皆様、宜しくお願い致します。
> 
> 質問内容:
> 一つの画像を読み込み、任意の部分だけを表示するようにしていたのですが、表示する部分が多く、
> 毎回そのプログラムを、コピー → 貼り付け → 表示部分の選択箇所を修正。
> としていたのですが、今後も増え続ける予定でおり、この表示プログラムをメソッド化したいと考えております。
> 今まで、自分なりにメソッド化の文章を考えて作成していたのですが、どうしても自分だけでは作成できず・・・。
> この様な質問は大変失礼かとは思いますが、皆様のご助力を頂けたらと思っております。
> どなたか、以下のソースを見て、メソッド化をして下さる方がおりましたら、宜しくお願いします。

これは質問とはいいません。依頼ですね。
そもそもどのようなメソッドを期待しているのかさえ不明ですので、ご希望にはそいかねます。

>		{
>        //Subimage mapchip_width,mapchip_height,〜mapchip_width32,mapchip_height32までの画像をbshortに読み込む
>		BufferedImage	bshort = ball.getSubimage( mapchip_width * 0, mapchip_height * 0, mapchip_width, mapchip_height );
>		ImageIcon	ii = new ImageIcon( bshort );				//JLabel用に型変換
>		JLabel jlImage = new JLabel( ii );					//jlImageにオブジェクトiiの画像を代入
>		jlImage.setSize( mapchip_width, mapchip_height );			//画像のサイズを設定
>		jp.add( jlImage );							//【親】パネルにjlImageを貼り付け
>		}

もし、上の部分をメソッドにしたいというのでしたら
{ から } までの部分を void main() の関数ブロックから外に出して、戻り値と関数名と引数宣言とを付けて
void myFunc(/** ここには適切な仮引数の並びを記述すること **/)
{
・・・・////ここには適当なコードが入る
}
という様に class gazousyori のメソッドを追加することが出来ます。が、このままでは static void main() からは
このメソッドは呼べません。
どうすればいいのかについては、java の基本の知識を学んでください。
myFunc は static でも public でも無いので class gazousyori の外部からは直接呼出せない。
myFunc は static な関数ではないので、class gazousyori のインスタンスが void main() にないので void main から呼出せない。

引用返信 編集キー/
■73460 / inTopicNo.3)  Re[2]: mainメソッドに記述したプログラムを短縮しメソッド化したい
□投稿者/ java?初心者 (1回)-(2014/09/27(Sat) 18:11:44)
No73449 (しま さん) に返信
> ■No73448 (java初心者 さん) に返信
>>開発環境:メモ帳にて作成(eclipseは使用しておりません)
>>使用言語:java
>>version :1.7.0_67
>>
>>昨日も質問しました。java初心者です。
>>しま様には的確なご指摘有難うございました。
>>又、閲覧されている皆様、宜しくお願い致します。
>>
>>質問内容:
>>一つの画像を読み込み、任意の部分だけを表示するようにしていたのですが、表示する部分が多く、
>>毎回そのプログラムを、コピー → 貼り付け → 表示部分の選択箇所を修正。
>>としていたのですが、今後も増え続ける予定でおり、この表示プログラムをメソッド化したいと考えております。
>>今まで、自分なりにメソッド化の文章を考えて作成していたのですが、どうしても自分だけでは作成できず・・・。
>>この様な質問は大変失礼かとは思いますが、皆様のご助力を頂けたらと思っております。
>>どなたか、以下のソースを見て、メソッド化をして下さる方がおりましたら、宜しくお願いします。
>
> これは質問とはいいません。依頼ですね。
> そもそもどのようなメソッドを期待しているのかさえ不明ですので、ご希望にはそいかねます。
>
> > {
> >        //Subimage mapchip_width,mapchip_height,〜mapchip_width32,mapchip_height32までの画像をbshortに読み込む
> > BufferedImage bshort = ball.getSubimage( mapchip_width * 0, mapchip_height * 0, mapchip_width, mapchip_height );
> > ImageIcon ii = new ImageIcon( bshort ); //JLabel用に型変換
> > JLabel jlImage = new JLabel( ii ); //jlImageにオブジェクトiiの画像を代入
> > jlImage.setSize( mapchip_width, mapchip_height ); //画像のサイズを設定
> > jp.add( jlImage ); //【親】パネルにjlImageを貼り付け
> > }
>
> もし、上の部分をメソッドにしたいというのでしたら
> { から } までの部分を void main() の関数ブロックから外に出して、戻り値と関数名と引数宣言とを付けて
> void myFunc(/** ここには適切な仮引数の並びを記述すること **/)
> {
> ・・・・////ここには適当なコードが入る
> }
> という様に class gazousyori のメソッドを追加することが出来ます。が、このままでは static void main() からは
> このメソッドは呼べません。
> どうすればいいのかについては、java の基本の知識を学んでください。
> myFunc は static でも public でも無いので class gazousyori の外部からは直接呼出せない。
> myFunc は static な関数ではないので、class gazousyori のインスタンスが void main() にないので void main から呼出せない。

しま様
ご回答の程有難うございます。
おっしゃるとおり、基本知識を学びます。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -