tyatsumiのプロフィール

@tyatsumi tyatsumi
ありがとう数53
質問数1
回答数79
ベストアンサー数
30
ベストアンサー率
58%
お礼率
100%

  • 登録日2008/08/24
  • バイト以降の単位の基準は1024か1000か

    お世話になります、日曜に教員採用試験-情報科を受けるのですが、 過去問を解いていたら疑問が出ました。 試験自体は基本情報と応用情報の中間ぐらいの難易度なんですが、以下の問題の正答が 微妙です。 1600*1200画素で24bitを色表現に割り当てるとき、256Mの容量のUSBに何枚保存できるか 1024で普通に計算すれば46枚可能です。 が、模範解答は44枚となっています、200点中の3点の些細な問題ですが気になります。 高校では1kb≒1000bで教えるのが普通なのでしょうか? 私学の勤務校ではずっと1024で指導しているんですけど…

  • setについてです。毎度ですがよろしくお願いします

    フィールドに「String mailAddress」を追加いたしました。 addCustomerCardメソッドの引数にmailAddressを追加して、メソッドではsetを使ってmailAddressの 重複がないかどうかを確認したいです。 あとは既に存在するmailAddressの場合は例外をスローしたいです。 できれば具体的なプログラムを追加していただけると助かります。 以上何卒よろしくお願い致します。 class CustomerManager { public static void main(String[] args){ CustomerManager manager = new CustomerManager(); manager.addCustomerCard( "山田一郎"); manager.addCustomerCard( "鈴木太郎"); manager.addCustomerCard( "田中次郎"); manager.printAllInfo(); } private CustomerCard[] customers = new CustomerCard[5]; private int index = 0; public void addCustomerCard(String name){ customers[index] = new CustomerCard(1 + index,name); index++; } public void printAllInfo() { System.out.print("ID =" + customers[0].id + ","); System.out.println("名前 = " + customers[0].name); System.out.print("ID =" + customers[1].id + ","); System.out.println("名前 = " + customers[1].name); System.out.print("ID =" + customers[2].id + ","); System.out.println("名前 = " + customers[2].name); } } class CustomerCard { String name; int id; public CustomerCard(int id,String name,String mailAddress){ this.name = name; this.id = id; this.mailAddress = mailAddress; } public String getName(){ return this.name; } public String mailAddress(){ return this.mailAddress; } }

  • javaアプレット repaintのタイミング

    勉強を始めたばかりなので稚拙な質問ですがお許しください。 ユーザーからの入力→repaint→画面に反映→プログラムが処理→repaint→画面に反映 というターン制のような動かし方をしたいのですが、実際にはユーザーの入力の後、プログラムの処理を待ってからまとめてrepaintしてしまいます。 repaint()は再描画を要求しているだけに過ぎず、repaint()と書いた場所で即時に再描画されるわけではないそうですが、では具体的にすぐ再描画してほしい場合はどうすればいいのでしょうか? 例えばですが、「ボタンを押すとcountの値が+1され、四角がcount個描画される。その一秒後に、こちらが何もしなくてもcountが+2されてもう一度四角がcount個(つまりこの時点で合計三個)描画される」というのを作ってみました。 import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class question extends Applet implements ActionListener{ Button bt1; int count = 0; public void init(){ bt1 = new Button("start"); add(bt1); bt1.addActionListener(this); } public void actionPerformed(ActionEvent e) { if (e.getSource() == bt1) { bt1.setEnabled(false); count += 1; repaint(); try { Thread.sleep(1000); } catch (InterruptedException e1) { } count += 2; repaint(); bt1.setEnabled(true); } } public void paint(Graphics g){ for(int i = 0; i < count; i++){ g.drawRect(10, 10, 10 + i * 5, 10 + i * 5); } } } これではボタンを押すたびに3つずつ四角が増えているように外見上見えてしまいます。 ボタンを押すとしっかり1つ四角を表示してから一秒待って、2つ四角を増やす。という風にするためにはどうすればよいのでしょうか? どなたかご教示ください。 ちなみにpaintImmediatelyというものを見つけましたが、何故か使えず……(メソッドpaintImmediatelyは未定義ですと言われてしまう)

    • ベストアンサー
    • Squonk
    • Java
    • 回答数1
  • またしてもjava.until.Mapに関してです

    いつもお世話になっております。以前質問したjava.until.Mapに関してですが、以下のプログラムのjava.until.List部分を変えるとどういった風になるのでしょうか? 何卒ご回答よろしくお願い致します。 class CustomerManager { public static void main(String[] args){ CustomerManager manager = new CustomerManager(); manager.addCustomerCard( "山田一郎"); manager.addCustomerCard( "鈴木太郎"); manager.addCustomerCard( "田中次郎"); manager.printAllInfo(); } private List<CustomerCard> customers = new ArrayList<CustomerCard>(); private int index = 0; public void addCustomerCard(String name){ customers.add(new CustomerCard(1 + index,name)); index++; } public void printAllInfo() { for(CustomerCard cc : customers){ System.out.print("ID =" + cc.id + ","); System.out.println("名前 =" + cc.name); } } } class CustomerCard { String name; int id; public CustomerCard(int id,String name){ this.name = name; this.id = id; } public String getName(){ return this.name; } }

  • スレッドの状態遷移について。。。

    Javaの本を買って読んでいます。 その中の「スレッド」のカテゴリーの「状態遷移」のところの「synchronized」の部分に、こう書かれています。 -------------------------- ・・・・・・ なお、sleepメソッドでスリープ状態(実行不可能状態)になったスレッドはロックを保持したまま開放しません。 そのため、ロックを取得できないで待たされるスレッドも実行不可能状態へ移行させられます。 -------------------------- これは、Synchronized指定されたメソッド(同期メソッド)の部分で出てきた文章でして、 私は、こう解釈しました。 → 例えば、同じオブジェクトの参照を引数とするスレッドが3つあり、その中の1つが『実行中』状態にある(仮に t1 とする)として(つまり残り2つ( t2 t3 )は『実行可能状態(プール)』にある。)、 実行中の t1 がsleep()メソッドで『実行不可能状態』になった場合、 『実行可能状態』にあった、t2 t3 も『実行不可能状態』へ移行する事になる。 間違っていますか? もし、この解釈が正しければ、こうなりますよね? t1・・・・・・・『実行中』 → 『実行不可能状態』 t2 t3・・・『実行可能状態』 → 『実行不可能状態』 ところが、状態遷移の5つの状態の図を見ると、 『実行可能状態』 から 『実行不可能状態』 へは、矢印→が書かれておりません。(逆向きの矢印がありますが。) どういう意味でしょうか。 java初心者ですが、 解りやすく教えて頂けると助かります。 宜しくお願い致します。