salsberry の回答履歴
- Javaプログラムの繋げ方について。
Javaプログラムの繋げ方について。 今まで(1)のようなプログラムを書いていました。 作りたいものに向けて色々検索するとやりたいものに近い(2)のようなサンプルプログラムを見つけました。 しかし、Java初心者なもので混ぜ方(?)がわかりません。 現在の私の知識からいうと今までのはアプレットでフレーム使うのはアプリケーションなのかな?別物なのかな?そんな感じです。 もし、混ぜることができるなら何かアドバイスをお願いします。 (1)package test; import java.applet.* ; import java.awt.Label ; import java.awt.Font ; import static java.awt.Font.BOLD ; import java.util.*; import java.awt.Graphics; import java.awt.Image; import java.awt.*; public class test extends Applet{ public void paint(Graphics g){ g.setColor(Color.red); g.fillOval(320, 200, 100, 100); } public void init () { ~~~~~~~~~~~~~~~~ } public void start () { ------------ }}} (2)import java.awt.*; import java.awt.event.*; public class MouseEvent7 extends Frame { int posX = 50; int posY = 50; public static void main(String [] args){ new MouseEvent7(); } //コンストラクタ MouseEvent7(){ this.addWindowListener(new WinAdapter()); //ウィンドウリスナーの登録 this.setSize(200,200); this.setVisible(true); //MouseMotionListenerの登録 addMouseMotionListener( new MouseMotionAdapter(){ public void mouseMoved(MouseEvent e){ posX = e.getX(); posY = e.getY(); repaint(); //paintメソッドを実行 } } ); } public void paint(Graphics g){ g.drawOval(posX,posY,50,50); } } (1)の内容に本当に(2)のプログラムで出来るマウスの動きに合わせて円も動く+クリックしたらそこで止まるだけいいのですが。 出来たら止まった点の座標も取りたいですが、そこまではいってません;;
- JAVAのご質問です。
JAVAのご質問です。 バイナリデータを読み込んで。 例 50バイト読みこんで、その中の11バイト~18バイトまで違う変数に格納 したいです。 何かいい方法ありましたら教えてください。 ソース書いて頂けるとありがたいです。 宜しくお願い致します。
- JAVAにご質問です。
JAVAにご質問です。 バイナリーデータをVBAで言うMid関数みたいに 指定した行~行を取得したいです。 クラスと使い方を教えてください・
- 「自作クラスの型」にキャストする方法について。
「自作クラスの型」にキャストする方法について。 Java初心者ですが、よろしくお願いします。 class AAA class BBB ※クラスAAAはクラスBBBのスーパークラス(直属のスーパークラスとは限らない)とします。 class CCC という3つのクラスがあるとして、 この場合、 class CCC{ AAA var; BBB bbb; void test(){ bbb = new BBB(); var = (AAA)bbb; //---★ } } というような、キャストは可能ですよね?(←確認1) 次に(確認1に問題が無い場合)、 クラスAAAとクラスBBBの格納場所(パッケージ関連の話です)について、 AAAとBBBがどういう位置関係にあるときに、上記のキャストは可能になるのでしょうか? AAAとBBBが同一パッケージ内にある時だけでしょうか?(←確認2[質問の核]) で、さらに、 上記の「---★」の所で、 AAAクラスにキャストする処理をしていますが、 この時、AAAクラスのコンストラクタは呼ばれるのでしょうか? (AAAをnewしていないけれど、キャスト処理でnewしたのと同じことになったりしますか?) また、これと同様の質問になりますが、 仮に、クラスAAAの設計が、クラスAAAのインスタンスが生成された場合に、 何らかのコールバック処理が行われるような設計の場合、 この (AAA)bbb というキャストによって、想定しているコールバック処理 は行われたりしますでしょうか?(←確認3) 初心者らしからぬ質問かもしれませんが、 どなたか、どうか分かりやすく教えて下さい。
- どのクラスのメソッドか、をどう見極めるか。
どのクラスのメソッドか、をどう見極めるか。 Java初心者です(教科書で学んで、実践はこれからというレベル)。 参考書やネット上の資料等に掲載されているコードを見ていますと、 import文(10文くらい)で沢山のパッケージをimportしているようなクラスを しばしば目にしますが、このようなクラス内で使われている沢山のメソッドは、 それぞれ、どこかのクラスに属しているメソッドであるかと思います。 これらのメソッドについて、その仕様を知りたいと感じた場合、 それらがそれぞれ、どのクラスに属するのかを突き止める必要があるかと思いますが、 その突き止め方について、どなたか教えて下さい。 (一般的に普及している方法で結構です。) 例えば、知りたいと感じたメソッド名をネット検索し、 そのメソッドが「Javaの組み込みクラス」のメソッドである場合には、 ネット検索でヒットするでしょうから、その検索結果を受けて、 そのヒットしたクラスと、import文の内容とを比較し、 ネット検索でヒットしたクラスが、そのメソッドの格納主であると確信できれば、 それをもとに、そのメソッドの仕様を知ることができますよね。 (自作・他作のメソッドと、名前がバッティングしているかもしれないことを考慮すると、 やや頭が痛くなる問題になりませんか?) ネット検索で辿る方法が、まず頭に浮かびましたが、 これよりも効率的な方法がもし何かありましたら、教えて下さい。 ただ、一方で、 仕様を知りたいと思っているメソッドが、 「Javaの組み込みクラス」のメソッドではなく、 自作(もしくは、他作)のメソッドであった場合、 検索してもヒットはしませんから、その場合には、 import文にある自作もしくは他作のパッケージをしらみつぶしで探していくことになるのでしょうか? 当然、そのメソッドは、同一パッケージ内にあるクラスのpublicメソッドである可能性もありますから、 同一パッケージ内のクラスの中も、しらみつぶしに探していくことになりますよね? 各メソッドがコメントで「○○クラスのメソッド」というように注意書きされてあれば、 このような苦労はないのでしょうが、ネット上のソースを見る限りでは、 そんな親切なコメントはまず期待できないように思います。 以上、まとまりのない質問ではありますが、アドバイスを宜しくお願い致します。 自分のこの疑問が見当違いの疑問でしたら、その時は、ズバリそれを指摘して下さい。
- Rubyの乱数に関して質問させてください。
Rubyの乱数に関して質問させてください。 1から30までの数字の中からランダムで一つを選ばせ 1の場合は email = "11111@yahoo.co.jp" password = "11111" 2の場合は email = "22222@yahoo.co.jp" password = "22222" 3の場合は email = "33333@yahoo.co.jp" password = "33333" 上記のようにしたいのですが、どのように記述したら良いでしょうか? ご教授頂けると幸いです。 宜しくお願いいたします。
- JSPでCのようにヘッダーファイルをインクルード
JSPでCのようにヘッダーファイルをインクルード お世話になります。 JSPでウェブページを作成しています。 ページ読み込み部分で前のページからPOSTされた情報に対して、 条件式を使い「真」ならそのページを表示、 偽の場合にはresponse.sendRedirect("URL");で別ページへジャンプをさせようと考えています。 その際に条件の判定に定数を使用したいのですが、 その定数は他のページでも使用する場合があるため、 C言語のヘッダーファイルのように、 別ファイルを用意して使い回しをしたいのですが… //test.h----------------------------- #pragma once const int CHECK_NUM = 15; //----------------------------------- //test.c #include <stdio.h> #include "test.h" int main(){ int n = 10; if(n < CHECK_NUM){ //真 } else{ //偽 } return 0; } このようにすればC言語では外部にかかれた定数を使用することができると思うのですが JSP,JAVAともに未経験のため詰まっています。(目下勉強中です) JSPで同様のことをするにはどのようにしたらよいのか教えていただきたいです。 質問をするにあたり情報の不足などがあるかもしれません。 その際にはお手数ですが、解答にてご指摘いただけると助かります。 宜しくお願い致します。
- InputStream.read()でタイムアウトの処理をしたい。
InputStream.read()でタイムアウトの処理をしたい。 現在自分は、InputStreamに入力されたデータをOutputStreamに移したいとかんがえているのですが、途中でreadメソッドが固まってしまいうまくいきません。 ソースで説明させていただきますと、 public static int copy(InputStream input,OutputStream output)throws IOException { byte[] buffer = new byte[1024 * 4]; int count = 0; int n = 0; while (0 < (n = input.read(buffer))) //ここで固まる { output.write(buffer, 0, n); count += n; System.out.println("available = " + input.available()); System.out.println(count + " byte = " + n); } return count; } このようなコピーするメソッドを書いたのですが、何度かループした後readメソッドで固まってしまいます。また、availableは常に0を返しております。 おそらくストリームの終わりが検出できないため、このような状態になっていると推測されるのですが、プログラムの性質上、InputStreamに入ってくるデータを変更することはできません。 なのでこの問題を解決するべく、ある程度の時間readメソッドがブロックされたら、breakするというような処理を書きたいのですが、どのようにすればよいでしょうか?
- Javaの質問です!
Javaの質問です! マウスポインタで示した場所が画像のピクセル値を返すような方法を知りませんか? 例えば左上を(0,0)として(800,600)の画像の中心にマウスポインタを合わせるorクリックすると (400,300)を返してくれるようなメソッドや変数を探しています! ご教授の程よろしくお願いします!
- ベストアンサー
- Java
- puyoer0501
- 回答数1
- C言語プログラム
C言語プログラム ある数を入力して、入力された数を一辺とする図形を描くプログラムを作りたいんです。 分かりやすくすると、 入力された数が5だった時、画面には ***** ***** ***** ***** ***** ↑こう出力させたいんです。 四角だけじゃなくて、 * ** *** **** ***** ↑こういう三角とか、逆三角とか、 * * ** *** *** ***** ** *** * * こんなかんじでいろんな形を描けるようにしたいんです。 C言語で、for文の二重ループを使うようにとのことなんですが、 どうすればいいでしょうか。 こういうのってズルですけど、何かヒントでも貰えればと思っています...。
- ベストアンサー
- その他(プログラミング・開発)
- 262612
- 回答数3
- javaの質問です。24フォントでg.drawString表示した文字
javaの質問です。24フォントでg.drawString表示した文字に、8フォントのg.drawStringをy軸をいじり、ふりがなをつけたいのです。24フォントの文字の上に8フォントを表示するのだからx軸を3倍し、24フォントの半分の12を足せばいい(ふりがなが一文字の場合)とおもっていたのですが。24フォントの「あ*10」と8フォントの「あ*30」を表示し試したところ少しずつずれているようです。(以下のプログラムで試してみました)。x軸を揃え表示するためにはどうすればいいでしょうか import javax.swing.*; import java.awt.*; import java.awt.image.*; import java.util.*; public class MojiTest2 { JFrame frame1; BufferStrategy bstrategy; MojiTest2(){ frame1=new JFrame("ゲームテスト"); frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setBackground(Color.WHITE); frame1.setResizable(false); frame1.setVisible(true); Insets insets = frame1.getInsets(); frame1.setSize(800 + insets.left + insets.right,600 + insets.top + insets.bottom); frame1.setLocationRelativeTo(null); frame1.setIgnoreRepaint(true); frame1.createBufferStrategy(2); bstrategy = frame1.getBufferStrategy(); java.util.Timer t=new java.util.Timer(); t.schedule(new MyTimerTask(),2,15); } public static void main(String args[]){ MojiTest2 gtm =new MojiTest2(); } class MyTimerTask extends TimerTask{ int line = 0; int position = 0; String[] messages = { "あelloWorlハローワールド", "あいうあいうあいうあいうあいうあいうあいうあいうあい", "年収うううう万円の米市職員退職"}; @Override public void run() { Graphics g = bstrategy.getDrawGraphics(); if(bstrategy.contentsLost()==false){ Insets insets = frame1.getInsets(); g.clearRect(insets.left,insets.top,insets.right - insets.left,insets.bottom - insets.top); g.translate(insets.left,insets.top); g.setColor(Color.BLUE); g.setFont(new Font("MS ゴシック",Font.BOLD,24)); g.drawString(messages[line].substring(0,position), 76,500 + 40 * line); g.drawString("ああああああああああああああああああああ", 76, 480); if((line==2) && (position==2)){ g.setFont(new Font("MS ゴシック",Font.BOLD,8)); g.drawString("ああああああああああああああああああああああああああああああ" + "ああああああああああああああああああああああああああああああ", 76, 460); }if(position < messages[line].length()){ position += 1; }else if(line == messages.length - 1){ }else{ position = 0; line += 1; } } bstrategy.show(); } } }
- 【VC++2005 MFC WindowsXP】バイナリからbit取得
【VC++2005 MFC WindowsXP】バイナリからbit取得 バイナリファイルの先頭から単純に1bitずつ値を取得し、そのbitが立っているかどうか判定したいと思っております。 私の頭の中では以下のようなイメージでいるのですが、「高速化」「可読性」など、どんな観点でも構いませんので、修正できそうな点をご教授願いますm(__)m (※全面的に修正していただいてももちろん構いません) ・ファイルから1バイト取得する。 ・そのバイトと「(byte & 0x80) ? 0 : 1」を行い、最初のビットがたっているか判定する。 ・次のbitを判定する際には「(byte & 0x40) ? 0 : 1」を行う。 ・このように1byte分(8回)判定を行ったら、次のバイトをファイルから読み込む。 ・これをファイルの最後まで繰り返す。 もっとスマートで高速に処理出来ないか模索しておりますが、何も思いつかず・・・ 参考になるサイトだけでも構いませんのでよろしくお願いいたしますm(__)m
- 【VC++2005 MFC WindowsXP】バイナリからbit取得
【VC++2005 MFC WindowsXP】バイナリからbit取得 バイナリファイルの先頭から単純に1bitずつ値を取得し、そのbitが立っているかどうか判定したいと思っております。 私の頭の中では以下のようなイメージでいるのですが、「高速化」「可読性」など、どんな観点でも構いませんので、修正できそうな点をご教授願いますm(__)m (※全面的に修正していただいてももちろん構いません) ・ファイルから1バイト取得する。 ・そのバイトと「(byte & 0x80) ? 0 : 1」を行い、最初のビットがたっているか判定する。 ・次のbitを判定する際には「(byte & 0x40) ? 0 : 1」を行う。 ・このように1byte分(8回)判定を行ったら、次のバイトをファイルから読み込む。 ・これをファイルの最後まで繰り返す。 もっとスマートで高速に処理出来ないか模索しておりますが、何も思いつかず・・・ 参考になるサイトだけでも構いませんのでよろしくお願いいたしますm(__)m
- JBuilderについてくるborlandパッケージのクラスについて解
JBuilderについてくるborlandパッケージのクラスについて解説している書籍ってありますか? 特に、borland.jbcl.layoutパッケージにあるクラス(BoxLayout2やVerticalFlowLayout)についての解説が載っているといいです。 というのは、以前、JBuilderで開発を行っていたのですが、最近Eclipseでの開発に変更したので、 JBuilderは、アンインストールしました。 しかし、上記borlandパッケージのクラスは、開発で使用しています。 JBuilderのヘルプにborlandパッケージのクラスの解説が載っていたので、JBuilderを入れ直せばいいのでしょうが、ヘルプを見るためだけに入れたくないので、もし、書籍で解説があるものがあれば、購入しようかと考えています。 JBuilderの書籍はいくつかある様なのですが、近くの本屋さんにはおいてなくて、amazon等のサイトで購入する事になると思いますが、borlandパッケージのクラスについて詳細に解説しているかどうか不明な為、質問しました。
- ベストアンサー
- Java
- yossy_sas2000
- 回答数1
- 「インタフェースを実装してそれが持つ抽象メソッドをオーバーライドする」
「インタフェースを実装してそれが持つ抽象メソッドをオーバーライドする」は正しい? はじめまして。Javaのインタフェースに関する質問です。 私はこれまで、インタフェースを使うときは、インタフェースを実装してクラスを宣言し、そのクラス、またはサブクラスでインタフェースがもつすべての抽象メソッドを定義する、と理解していました。 しかし、下の例をみてください。抽象メソッドの定義を、インタフェースの実装の以前で与えています。問題無くコンパイルでき、実行できます。実行結果も以下の通りです。 インタフェースの抽象メソッドへの定義の与え方やその実行のされ方は、メソッドのオーバーライドと同様と思っていましたので、下記のコードでは「クラスBが抽象クラスではありません」や、「インタフェースの抽象メソッドがオーバーライドされていません」などの文法エラーがでると思っていました。 そこで、質問です。 インタフェースが持つ抽象メソッドの定義を与える場所について、または、これに関する説明のあるページなど、何かご存知でしたら教えてください。 ★コード★ interface X{ void show(); } class A{ public void show(){ System.out.println("A"); } } class B extends A implements X{ } public class Main{ public static void main(String[] args){ X x=new B(); x.show(); } } ★実行結果★ >java Main A ★Java環境★ java 1.6.0_21 javac 1.6.0_16
- ベストアンサー
- Java
- maki_maki_
- 回答数6
- javaの環境変数の%CATALINA_HOME%のCATALINAっ
javaの環境変数の%CATALINA_HOME%のCATALINAってなんですか? どんな由来でカタリーナなのか気になります。 教えてください。
- ベストアンサー
- Java
- toritori_2010_1
- 回答数2
- index0920さん
index0920さん javaの質問です なぜ以下のプログラムがループするのかがわかりません 文字列を全文出し切った時点でとめたいのですがどうすればいいでしょうか? 方法と解説をおねがいします。 import javax.swing.*; import java.awt.*; import java.awt.image.*; import java.util.*; import java.util.concurrent.TimeUnit; public class MojiTest0730 { JFrame frame1; BufferStrategy bstrategy; MojiTest0730(){ frame1=new JFrame("ゲームテスト"); frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setBackground(Color.WHITE); frame1.setResizable(false); frame1.setVisible(true); Insets insets = frame1.getInsets(); frame1.setSize(800 + insets.left + insets.right,600 + insets.top + insets.bottom); frame1.setLocationRelativeTo(null); frame1.setIgnoreRepaint(true); frame1.createBufferStrategy(2); bstrategy = frame1.getBufferStrategy(); java.util.Timer t=new java.util.Timer(); t.schedule(new MyTimerTask(),30,150); } public static void main(String args[]){ MojiTest0730 gtm =new MojiTest0730(); } class MyTimerTask extends TimerTask{ int line = 0; int position = 0; String[] messages = { "Hello、Worldハローワールド", "aaa", "年収7000万円 の米市職員退職"}; @Override public void run() { Graphics g = bstrategy.getDrawGraphics(); if(bstrategy.contentsLost()==false){ Insets insets = frame1.getInsets(); g.clearRect(insets.left,insets.top,insets.right - insets.left,insets.bottom - insets.top); g.translate(insets.left,insets.top); g.setColor(Color.BLUE); g.setFont(new Font("MS ゴシック",Font.BOLD,24)); g.drawString(messages[line].substring(0,position), 200,500 + 40 * line); System.out.println(messages[line].substring(0,position)); if((line==2) && (position==2)){ g.setFont(new Font("MS ゴシック",Font.BOLD,12)); //g.drawString(messages2[line].substring(0,position), 200,500 + 40 * line); g.drawString("ねん", 200, 560); } if(position < messages[line].length()){ position += 1; }else if(line == messages.length - 1){ position += 1; }else{ position = 0; line += 1; } } bstrategy.show(); g.dispose(); } }
- 10個の要素数を持つ配列に0~99までの乱数を挿入し、出力例のように配
10個の要素数を持つ配列に0~99までの乱数を挿入し、出力例のように配列の前後を入れ替えて出力しなさい.ただし、シード値は任意とする. [出力例] before 23 52 71 2 56 34 7 23 51 93 after 93 51 23 7 34 56 2 71 52 23 この問題がどうしても解けません・・・。 どなたか教えてください! よろしくお願いします!! ちなみに、言語はJavaです
- javaのプログラミングについての質問です
javaのプログラミングについての質問です 任意の複数の数値を入れたファイルを読み取りその数値の場所から次の数値まで線を描画するプログラミングを作成しました ここから発展問題としてタートルグラフィックスを 描画するプログラムを50歩進み右に90度曲がることを4度繰り返すという条件で作ってみようと思ったのですが上手くコンパイルが通りません 取りあえず分かっているのは (100.cos45,100.sin45)で90°曲がる repeat 4,forward 50right 90 end 0 だけです もし分かる方がいらっしゃいましたらご返答宜しくお願いします import java.awt.*; import java.awt.event.*; import java.io.*; public class mondai{ int x[] = new int[100]; int y[] = new int[100]; int len = 0; public static void main(String[] args){ new mondai(args[0]); } public mondai(String mondai2){ ReadFile rf = new ReadFile(mondai2); String line; while( (line = rf.gets()) != null) { String[] date = line.split(","); if(date.length == 2){ x[len] = Integer.parseInt(date[0]); System.out.println(date[0]); y[len]= Integer.parseInt(date[1]); System.out.println(date[1]); len++; } } Frame f = new Frame(); f.setTitle("Line"); f.setSize(640,480); f.setLayout(null); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); }}); DrawArea da = new DrawArea(); da.setBounds(0,0,640,480); f.add(da); f.setVisible(true); } private class DrawArea extends Canvas{ public void paint(Graphics g){ for(int i=0;i<len-1;i++) g.drawLine(x[i],y[i],x[i+1],y[i+1]); } } private class ReadFile{ FileInputStream fis; InputStreamReader isr; BufferedReader br; public ReadFile(String filename){ try{ fis = new FileInputStream(filename); isr = new InputStreamReader(fis); br = new BufferedReader(isr); }catch(Exception e){ e.printStackTrace(); } } public String gets(){ String line = ""; try{ line = br.readLine(); }catch(Exception e){ e.printStackTrace(); } return line; } } }
- コンパイルすると、"A大学"っていうパネルが出てきて、それをクリックす
コンパイルすると、"A大学"っていうパネルが出てきて、それをクリックすると、A大学の説明が書いてある別のウィンドウが起動するっていうソースコードを作りたいんですが、エラーがでます。どこがおかしいのかヒントだけでもください。 ソースコード: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class Param { public static void main(String args[]) { new MainWindow("A大学のウィンドウ"); } } class MainWindow extends Frame implements ActionListener{ static JButton openBtn; MainWindow(String title) { super(title); JPanel panel = new JPanel(); panel.add(openBtn = new JButton("A大学")); openBtn.addActionListener(actionListener); this.add(panel, BorderLayout.CENTER); pack(); setVisible(true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source == SubWindow.openBtn) { new SubWindow("A大学の説明"); //MainWindow.setVisible(true); } } } class SubWindow extends Frame { SubWindow() { Frame mainWindow = new Frame("説明"); JTextArea ta = new JTextArea("Hello World!!", 4, 15); mainWindow.add(ta,BorderLayout.CENTER); pack(); setVisible(true); } } エラー: シンボルを見つけられません。 シンボル: 変数 actionListener 場所 : MainWindow の クラス openBtn.addActionListener(actionListener); シンボルを見つけられません。 シンボル: 変数 openBtn 場所 : SubWindow の クラス if (source == SubWindow.openBtn) { シンボルを見つけられません。 シンボル: コンストラクタ SubWindow(java.lang.String) 場所 : SubWindow の クラス new SubWindow("A大学の説明"); エラー 3 個