takaP- の回答履歴
- ファイルへの書き込みを高速に行うには?
OutputStreamやWriterを使って、ファイルに大量の文字列データを 書き込むとき、どのようなクラスを使ってどのような処理を行えば、 最も速く書き込み処理を行うことができるでしょうか?
- Classの起動パスの取得方法
Javaで public static void main( String args[] ) が呼び出されたとき、Cであればargv[0]に 自身の起動パスが設定されていますが、 JavaではArgs[0]は1番目の引数が入るだけなので その目的には使えないようです。 起動されたClassファイルが置かれているパス を知る方法を教えていただけないでしょうか。
- JButtonがsetEnabled(false)の時の文字色
こんにちは。 タイトルのとおりなのですが、JButtonがsetEnabled(false)の時の文字色って何色なんでしょう? ボタンのテキストを二段にしたいため、 JButton myButton = new JButton(); myButton.setText("<html>上<br>下"); と設定します。 それで、ボタンに触れないようにするとき、 myButton.setEnabled(false); にすると、触れなくはなりますがボタンの文字色が黒のままなんです。 falseのとき文字色をgray,silver,#CCCCCC,#CCCCFFで試しましたが色が違いました・・・。 あの色にするのは無理なのでしょうか!? ご存知の方いましたら、よろしくお願いします。 (二段にする方法が他にあったらそれもお願いします!)
- ベストアンサー
- Java
- noname#7237
- 回答数1
- 2進数変換について教えてくださ。
public class Class1 { public static void main (String[] args) throws Exception { System.out.println("任意の数値を入力してください:"); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in),1); try{ String line=reader.readLine(); int n = Integer.parseInt(line); for (int m=n ; m>0; m/=2) { int r =m % 2; System.out.print(r); } System.out.println("\n逆から見ると"+n+"の2進数になっています。"); System.in.read(); } catch (IOException e) { System.err.println("Error Message:"+e); System.in.read(); } catch (NumberFormatException e){ System.out.println("数字ではありません"); System.in.read(); } } } 上のプログラムを実行して例えば8という数字を入力するとすると、 任意の数値を入力してください。 8 0001 逆から見ると8の2進数になってます。 というような感じになるのですが、逆から見ないでも2進数になるように (0001)を(1000)のような感じで数値を逆に表示させるにはどのようにすればいいのでしょうか? よろしくお願いします。
- ダブルバッファリングについて
Javaで時計を作成していますが、 裏画面への作画がうまくいきません。 コンパイルはできますが、実行すると以下のエラーがでます。 Exception in thread "main" java.lang.NullPointerException at AnalogClock.<init>(AnalogClock.java:22) at AnalogClock.main(AnalogClock.java:54) オブジェクトが必要なときに、アプリケーションがnullを返すと、この例外がでることはわかりましたが、どうしてアプリケーションがnullを返すのかがわからず困っています。 プログラムは、表画面に直接表示するとちゃんとでます。 どなたか教えて頂けるとうれしいです。よろしくお願いします。 7)public class AnalogClock extends Frame implements Runnable { 8) 9) Calendar cal; 10) Image backimg; 11) Graphics bg; 中略 19) AnalogClock() { 20)//ダブルバッファリング用裏画面 21) backimg = createImage(width,height); 22) bg = backimg.getGraphics(); 23) setBackground(Color.black); 24) } 25) 26) public void paint(Graphics g) { 27)//カレンダーの取得(時・分・秒) 28) cal = Calendar.getInstance(); 29) hour = cal.get(cal.HOUR); 30) min = cal.get(cal.MINUTE); 31) sec = cal.get(cal.SECOND); 32)//時計の文字盤を作画 33) //文字盤の作画開始座標 34) x = 50; 35) y = 50; 36) //文字盤の直径 37) across = 200; 38) bg.setColor(Color.yellow); 39) bg.fillOval(x,y,across,across); 40)//裏画面のイメージを面画面に作画 41) g.drawImage(backimg,0,0,null); 42) } 中略 53) public static void main(String[] args) { 54) final AnalogClock ac = new AnalogClock(); 55) Thread th = new Thread(ac); 56) th.start(); 57) ac.setSize(300,300); 58) ac.setVisible(true); 以下略 (左の数字は行数です)
- javaのCLASS ファイルについて
いらないJAVAのプログラムが増えてきたので保存してあるフォルダを整理していたところ、誤って必要なものまで削除してしまったのですがCLASS ファイルはあります。CLASSファイルからJAVAファイルに戻すことはできますか?
- 自分で作ったクラスのメソッドから、配列が返ってこない
こんばんは。 自分で作ったクラスのメソッドで、戻り値が配列のメソッドがあります。そのメソッドをメインプログラムから呼び出しても、値が入っていません。(空の配列が返ってくるのか、配列が返されているのかも分かりません)実行時エラーは以下の通りです。 Exception in thread "main" java.lang.NullPointerException at Main.main(Main.java:23) ソースコードは以下の通りです。 以下はメインプログラム // 自分で作成したクラスを使用しています DataProperty dp = new DataProperty( args[0] ); // ここで配列に値を入れています。 int[] intByteSize = dp.getByteSize(); System.out.println( intByteSize[0] ); 以下は自分で作ったプログラムです。 public int[] getByteSize() { if( fileNumber.equals("2004") ) { int[] intByteSize = { 8, 1, 5, 50, 8, 1, 15, 15, 3, 3, 8, 8, 11, 9, 7, 7, 1 }; return intByteSize; } 本などを見ても、構文的に間違いはないと思うんですが。。 だれか、原因の思いつく方は解答をください。よろしくお願いします。
- ベストアンサー
- Java
- kamkamkam3
- 回答数2
- javaのローカル変数について
基本的なことの質問ですがよろしくお願いいたします。 下記の様なソースコードでint y ;はローカル変数にあたると思いますが 確かローカル変数は初期化されないとコンパイルエラーになるはずなのですが どうもコンパイルも実行もできます。 どうしてでしょうか? よろしくお願いいたします。 class Test1{ static int x = 0; } public class Test extends Test1{ public static void main(String args[]){ Test i = new Test(); int y ; y = ++x; System.out.println( y ) ; } }
- コンパイルできません
メモ帳に簡単なプログラムを書いて保存した所、拡張子が.txtになってしまったためかMS-DOSプロンプトでコンパイルしようとしたのですが、「コマンドまたはファイル名が違います」とエラーが出てしまいました。参考書のとおりにやっているのですが、うまくきません。どうすればコンパイルできるのでしょうか?
- スクロールバーの初期化(Java)
こんばんわ。 Java初心者です。 今、Applet上でスクロールバーを使って絵を動かすプログラムを作ってます。 リセットボタンを押すと、絵が元の位置に戻るようにしたのですが、スクロールバーが元に戻りません。これはどうしたらいいでしょうか。おして下さい。
- 簡単なテキストエディタを作っているのですが・・
javaで、テキストファイルの読み書きとTextAreaクラスの持つ機能を使った編集ができる程度の簡単なテキストエディタを作成したいのですが、新規作成を行うためのメニューアイテムをどのように作成すればいいのか解りません。 そのメニューアイテムを実行した時に、新しいファイルの編集を始める状態にしなければならないので、テキストを編集中であるのならばその内容を全て消去し、開いたファイルがあるのならば初期状態に戻し、さらにウィンドウのタイトルもNew Fileなどに変更しなければなりません。 わかる方がいましたらよろしくお願いします。
- エラー表示を一画面ずつに・・・。
Java初心者です。お願いします。 ちょっと長いプログラムをコンパイルしたら、多数のエラーのせいで、Dosプロンプトの画面がダーーッと上に上がっていってしまって、初めのほうのエラーのチェックができません。 一画面ずつ表示する方法はないのでしょうか? よろしくお願いします。
- インスタンスの生成
クラスA : ユーザインタフェース担当class クラスB : 通信担当class サーバ : 適当なWebサービス とするとき、ユーザからアクセスがあったらクラスAからクラスBを生成し、クラスBでsocketを作ってサーバと送受信、結果をクラスAに返して終了という簡単なものを作っています。 が、これだと「AがBを作って呼ぶ」「Bが通信する」「BがAに結果を返す」と一往復しか動けないので、Aは送信データを全部用意してからBを呼ばないといけません。 ではなく、「AからBに順次データを送り」、「Bはサーバから応答が来たらAに送る」というふうに変えたいと思っています。つまり、HTTPならAからBにGETが飛んで、次にUser-Agentが飛んで・・・最後に\nが飛ぶとBからAにHTMLが来る、みたいな感じですね。が、ここで疑問が出てきました。 1) Aの中でBを生成するのは初回の一回だけ(ですよね?じゃないと違うBができてしまいます)ですが、既にインスタンスがあるのかをどうやって判定するのでしょうか? 2) Bは何度も呼ばれるわけですが、同じく、Bの中でsocketを生成するのに、既にsocketがあるのかを判定できますか?コンパイル時にsocketをnewしていなかったらエラーになりませんか? 3) Bのインスタンスが同じなら、Bが何度呼ばれようとも、さっき作ったsocketは同じだから、AはBを呼ぶだけでサーバに辿り着けるのでしょうか? すみません、、混乱してきました(汗
- getImageでのファイルパス
getImageでイメージを取得するときに、イメージファイルの置き場所について何か制限はありますか? img = getImage(getDocumentBase(),"../フォルダ名/ファイル名"); だとエラーになってしまいます。 classファイルが保存されているフォルダ内に、イメージが保存されているフォルダを置き、 img = getImage(getDocumentBase(),"フォルダ名/ファイル名"); だとうまくいきます。 「../」は使えないのでしょうか?それとも置き場所が悪いのでしょうか? 勉強不足でお手数をおかけしますが、どなたかご存知の方がいらっしゃいましたら、ご回答頂けると助かります。よろしくおねがいいたします。
- Javaプログラミング
こんにちは。Javaを最近勉強し始めたJava初心者です。これは2つの数を入力してそれそれの和、差、積、剰余を表示するものです(入力時の妥当性チェックは考慮しない。)。しかし下記のプログラムがうまく動いてくれません。どこが間違っているのかわからないのでわかる方教えて下さい。おねがいします。 import java.io.*; interface plus { int Plus(); } interface sub { int Sub(); } interface mul { int mul(); } interface mod { int Mod(); } class Compute extends plus,sub,mul,mod { int pa,pb; Compute(int a,int b) { this.pa=a; pb=b; } public int Plus() { return(pa+pb); //和を返す } public int Sub() //差を返す { return(pa-pb); } public int Mul() { return(pa*pb); //積を返す } public int Mod() { return(pa%pb); //余を返す } } class calc { public static void main(String args[]) throws IOException { InputStreamReader isp=new InputStreamReader(System.stdin); BufferedReader inp=new BufferedReader(isp); System.out.print("数1="); String sLins=inp.readLine(); //1つめの数値を入力 int a=integer.parseInt(sLine); System.out.print("数2="); String sLins=inp.readLine(); //2つめの数値を入力 int b=integer.parseInt(sLine); Compute c=new Compute(a,b); System.out.println("和:"+c.Plus()+"差:"+c.Sub()+"積:"+c.Mul()+"余:"+c.Mod()); } }