ngsvx の回答履歴
- paint( )メッソドをオーバーロードについて
paint( )メッソドをオーバーロードについて 今晩は、JAVA初心者です、宜しくお願いします。 paint( )メッソドをオーバーロードする時に、<< A >>のコードはそのまま、 g.drawStringを書いていますが、<< B >>のコードでは、 super.paint( )で親クラスを呼んでやらないと、エラーになります。 この両者の違いが全く理解出来ません、どこがどのように違うのでしょうか。 宜しくお願い致します。 ======================================== << A >> public class Sample extends Applet { public void paint(Graphics g) { g.drawString("Applet",50,50); } } ======================================= << B >> public class JFrame_Test extends JFrame { JFrame_Test() { setSize(400,300); setTitle("JFrame_Test"); } public void paint(Graphics g) { super.paint(g); g.drawString("Today",70,70); } public static void main(String[] args) { JFrame jf = new JFrame_Test(); jf.setVisible(true); } } ========================================
- paint( )メッソドをオーバーロードについて
paint( )メッソドをオーバーロードについて 今晩は、JAVA初心者です、宜しくお願いします。 paint( )メッソドをオーバーロードする時に、<< A >>のコードはそのまま、 g.drawStringを書いていますが、<< B >>のコードでは、 super.paint( )で親クラスを呼んでやらないと、エラーになります。 この両者の違いが全く理解出来ません、どこがどのように違うのでしょうか。 宜しくお願い致します。 ======================================== << A >> public class Sample extends Applet { public void paint(Graphics g) { g.drawString("Applet",50,50); } } ======================================= << B >> public class JFrame_Test extends JFrame { JFrame_Test() { setSize(400,300); setTitle("JFrame_Test"); } public void paint(Graphics g) { super.paint(g); g.drawString("Today",70,70); } public static void main(String[] args) { JFrame jf = new JFrame_Test(); jf.setVisible(true); } } ========================================
- paint( )メッソドをオーバーロードについて
paint( )メッソドをオーバーロードについて 今晩は、JAVA初心者です、宜しくお願いします。 paint( )メッソドをオーバーロードする時に、<< A >>のコードはそのまま、 g.drawStringを書いていますが、<< B >>のコードでは、 super.paint( )で親クラスを呼んでやらないと、エラーになります。 この両者の違いが全く理解出来ません、どこがどのように違うのでしょうか。 宜しくお願い致します。 ======================================== << A >> public class Sample extends Applet { public void paint(Graphics g) { g.drawString("Applet",50,50); } } ======================================= << B >> public class JFrame_Test extends JFrame { JFrame_Test() { setSize(400,300); setTitle("JFrame_Test"); } public void paint(Graphics g) { super.paint(g); g.drawString("Today",70,70); } public static void main(String[] args) { JFrame jf = new JFrame_Test(); jf.setVisible(true); } } ========================================
- paint( )メッソドをオーバーロードについて
paint( )メッソドをオーバーロードについて 今晩は、JAVA初心者です、宜しくお願いします。 paint( )メッソドをオーバーロードする時に、<< A >>のコードはそのまま、 g.drawStringを書いていますが、<< B >>のコードでは、 super.paint( )で親クラスを呼んでやらないと、エラーになります。 この両者の違いが全く理解出来ません、どこがどのように違うのでしょうか。 宜しくお願い致します。 ======================================== << A >> public class Sample extends Applet { public void paint(Graphics g) { g.drawString("Applet",50,50); } } ======================================= << B >> public class JFrame_Test extends JFrame { JFrame_Test() { setSize(400,300); setTitle("JFrame_Test"); } public void paint(Graphics g) { super.paint(g); g.drawString("Today",70,70); } public static void main(String[] args) { JFrame jf = new JFrame_Test(); jf.setVisible(true); } } ========================================
- アセンブリ:FCのファイルオープンについて
アセンブリ:FCのファイルオープンについて ファイルオープンのファンクションコールについて質問させてください。 うまく伝えられるか不安なので、いま陥っている現象を順番に書かせていただきます。 まずエディタで、 ---------------------------------- MOV AH , 3DH MOV AL , 00H MOV DX , offset FNAME INT 21H FNAME DB 'C:\xyz.txt',00H ---------------------------------- という簡易なプログラムを記述しました(擬似命令は省いています) これをアセンブルすると、 --------------------------------------- CS:0100 B43D MOV AH,3D CS:0102 B000 MOV AL,00 CS:0104 BA0901 MOV DX,0109 (*注) CS:0107 CD21 INT 21 CS:0109 43 INC BX ・ ・ -------------------------------- となるのですが、このとき AX=0003 CY となり、ファイルオープンに失敗してしまいます。 理由がまったくわからないので、デバックの直打ちで 0200 DB 'C:\xyz.txt' と格納してから、(*注)である命令を MOV DX,0200 に打ちかえれば、 AX=0005 NC となって無事にオープンできるみたいです。 なお、ファイルオープンに限らず、ファイル作成でも同じでした。 エディタでアセンブル( DX , 0109 ) だと失敗し、 デバッグ直打ち( DX , 0200 ) だと成功します。 これはいったい、どういう理由からなのでしょうか? 何冊か本を読んでみたのですが、書かれているのはコードの記述のみなので困っています。 わかる方がおられましたら、ご教授ください。 WINXP:MASM32で行っています。
- ベストアンサー
- その他(プログラミング・開発)
- syugyoucyuu
- 回答数3
- paint( )メッソドをオーバーロードについて
paint( )メッソドをオーバーロードについて 今晩は、JAVA初心者です、宜しくお願いします。 paint( )メッソドをオーバーロードする時に、<< A >>のコードはそのまま、 g.drawStringを書いていますが、<< B >>のコードでは、 super.paint( )で親クラスを呼んでやらないと、エラーになります。 この両者の違いが全く理解出来ません、どこがどのように違うのでしょうか。 宜しくお願い致します。 ======================================== << A >> public class Sample extends Applet { public void paint(Graphics g) { g.drawString("Applet",50,50); } } ======================================= << B >> public class JFrame_Test extends JFrame { JFrame_Test() { setSize(400,300); setTitle("JFrame_Test"); } public void paint(Graphics g) { super.paint(g); g.drawString("Today",70,70); } public static void main(String[] args) { JFrame jf = new JFrame_Test(); jf.setVisible(true); } } ========================================
- paint( )メッソドをオーバーロードについて
paint( )メッソドをオーバーロードについて 今晩は、JAVA初心者です、宜しくお願いします。 paint( )メッソドをオーバーロードする時に、<< A >>のコードはそのまま、 g.drawStringを書いていますが、<< B >>のコードでは、 super.paint( )で親クラスを呼んでやらないと、エラーになります。 この両者の違いが全く理解出来ません、どこがどのように違うのでしょうか。 宜しくお願い致します。 ======================================== << A >> public class Sample extends Applet { public void paint(Graphics g) { g.drawString("Applet",50,50); } } ======================================= << B >> public class JFrame_Test extends JFrame { JFrame_Test() { setSize(400,300); setTitle("JFrame_Test"); } public void paint(Graphics g) { super.paint(g); g.drawString("Today",70,70); } public static void main(String[] args) { JFrame jf = new JFrame_Test(); jf.setVisible(true); } } ========================================
- paint( )メッソドをオーバーロードについて
paint( )メッソドをオーバーロードについて 今晩は、JAVA初心者です、宜しくお願いします。 paint( )メッソドをオーバーロードする時に、<< A >>のコードはそのまま、 g.drawStringを書いていますが、<< B >>のコードでは、 super.paint( )で親クラスを呼んでやらないと、エラーになります。 この両者の違いが全く理解出来ません、どこがどのように違うのでしょうか。 宜しくお願い致します。 ======================================== << A >> public class Sample extends Applet { public void paint(Graphics g) { g.drawString("Applet",50,50); } } ======================================= << B >> public class JFrame_Test extends JFrame { JFrame_Test() { setSize(400,300); setTitle("JFrame_Test"); } public void paint(Graphics g) { super.paint(g); g.drawString("Today",70,70); } public static void main(String[] args) { JFrame jf = new JFrame_Test(); jf.setVisible(true); } } ========================================
- 暗号キーの保存
現在下記のようにし、暗号化を行っています。 -------------------------以下ソース KeyGenerator kg = KeyGenerator.getInstance("AES"); SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); // 128ビットで暗号化 kg.init(128, random); Key key = kg.generateKey(); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key); // バイト配列に変換 byte[] byteArray = cipher.doFinal(argStr.getBytes()); 暗号化について調べていると、暗号化(復号化)キーは乱数などで作ったほうが良いと書いてありました。 そこで質問なのですが、ログイン画面でパスワードを暗号化するために上記コーディングを行っているのですが、乱数でキーを作成した場合、各ユーザごとにキーが作成されるって認識であってますでしょうか? その場合、暗号キーはどこに保存しておくのが望ましいでしょうか? できる限りセキュアなアプリを作りたいと思っています。 (もちろん100%はないとは思っていますので) ※データベースは使えない環境を想定しています。 以上宜しくお願いします。 tomcat5.0 jdk.1.4.2 を使用
- ベストアンサー
- Java
- pgBeginImo
- 回答数6
- 暗号キーの保存
現在下記のようにし、暗号化を行っています。 -------------------------以下ソース KeyGenerator kg = KeyGenerator.getInstance("AES"); SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); // 128ビットで暗号化 kg.init(128, random); Key key = kg.generateKey(); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key); // バイト配列に変換 byte[] byteArray = cipher.doFinal(argStr.getBytes()); 暗号化について調べていると、暗号化(復号化)キーは乱数などで作ったほうが良いと書いてありました。 そこで質問なのですが、ログイン画面でパスワードを暗号化するために上記コーディングを行っているのですが、乱数でキーを作成した場合、各ユーザごとにキーが作成されるって認識であってますでしょうか? その場合、暗号キーはどこに保存しておくのが望ましいでしょうか? できる限りセキュアなアプリを作りたいと思っています。 (もちろん100%はないとは思っていますので) ※データベースは使えない環境を想定しています。 以上宜しくお願いします。 tomcat5.0 jdk.1.4.2 を使用
- ベストアンサー
- Java
- pgBeginImo
- 回答数6
- 暗号キーの保存
現在下記のようにし、暗号化を行っています。 -------------------------以下ソース KeyGenerator kg = KeyGenerator.getInstance("AES"); SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); // 128ビットで暗号化 kg.init(128, random); Key key = kg.generateKey(); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key); // バイト配列に変換 byte[] byteArray = cipher.doFinal(argStr.getBytes()); 暗号化について調べていると、暗号化(復号化)キーは乱数などで作ったほうが良いと書いてありました。 そこで質問なのですが、ログイン画面でパスワードを暗号化するために上記コーディングを行っているのですが、乱数でキーを作成した場合、各ユーザごとにキーが作成されるって認識であってますでしょうか? その場合、暗号キーはどこに保存しておくのが望ましいでしょうか? できる限りセキュアなアプリを作りたいと思っています。 (もちろん100%はないとは思っていますので) ※データベースは使えない環境を想定しています。 以上宜しくお願いします。 tomcat5.0 jdk.1.4.2 を使用
- ベストアンサー
- Java
- pgBeginImo
- 回答数6
- JTextAreaのサイズについて
こんにちは。 現在、swingの勉強のため、簡易エディタをswingで作成しています。 JTextAreaのサイズを、文字数ではなく視覚的に設定したいので、Dimensionを使ったのですが、setSize()を使っても上手くいきません。JScrollPaneで使ってもやっぱり上手くいきません。 何か良い方法はないでしょうか?ご教授ください。 環境:J2SDK1.4.2_04/Windows2000 pro sp4/LookAndFeelはデフォルト
- オブジェクトの参照およびハッシュコードについて
下記のプログラムは任意のクラスMoofおよびStringクラスについてそれらのオブジェクトの参照値とハッシュコードをプリントし、さらにStringオブジェクトの参照値同士の比較をしています。 次の質問に対して分かりやすくご教示ください。 (1)Moofオブジェクトについては参照値そのものの値を出力しているようですが、Stringオブジェクトの場合はオブジェクトの値(abc)が出力されているのは何故ですか (2)参照値の構成は(クラス名+@+16進ハッシュコード)であり、オブジェクト(インスタンス)のあるアドレスを指し示すと聞きました。Stringオブジェクトは2つあってその値はabcで等しいのでハッシュコードも同じになっている訳ですが、もしハッシュコードがアドレスを示すとすると2つのオブジェクトに対してアドレスは1つとなりますが… (3)上の(2)に関連して参照値four、fiveに関するオブジェクトのハッシュコードはともに0x17862で等しいのですが、両者を==演算子で比較するとfalseとなります。 これはどうしてですか。 どなたか詳しい方、よろしくお願いします。 public class EqualsCheckX { public static void main(String[] args) { Moof one = new Moof(8); Moof two = new Moof(8); Moof three = one; int a = one.hashCode(); int b = two.hashCode(); int c = three.hashCode(); String four = new String("abc"); String five = new String("abc"); String six = four; int d = four.hashCode(); int e = five.hashCode(); int f = six.hashCode(); System.out.println("Moof " + " one : " + one + " two : " + two + " three : " + three); System.out.println("String" + " four : " + four + " five : " + five + " six : " + six); System.out.println(); System.out.println("hashCode" + " one : " + Integer.toHexString(a) + " two : " + Integer.toHexString(b) + " three : " + Integer.toHexString(c)); System.out.println("hashCode" + " four : " + Integer.toHexString(d) + " five : " + Integer.toHexString(e) + " six : " + Integer.toHexString(f)); System.out.println(); // String if (four == five) { System.out.println("String : four and five are equal"); } else { System.out.println("String : four and five are not equal"); } if (four == six) { System.out.println("String : four and six are equal"); } else { System.out.println("String : four and six are not equal"); } } } class Moof { private int moofValue; Moof(int val) { moofValue = val; } } C:\MyJava>java EqualsCheckX Moof one : Moof@1ac04e8 two : Moof@765291 three : Moof@1ac04e8 String four : abc five : abc six : abc hashCode one : 1ac04e8 two : 765291 three : 1ac04e8 hashCode four : 17862 five : 17862 six : 17862 String : four and five are not equal String : four and six are equal
- オブジェクトの参照およびハッシュコードについて
下記のプログラムは任意のクラスMoofおよびStringクラスについてそれらのオブジェクトの参照値とハッシュコードをプリントし、さらにStringオブジェクトの参照値同士の比較をしています。 次の質問に対して分かりやすくご教示ください。 (1)Moofオブジェクトについては参照値そのものの値を出力しているようですが、Stringオブジェクトの場合はオブジェクトの値(abc)が出力されているのは何故ですか (2)参照値の構成は(クラス名+@+16進ハッシュコード)であり、オブジェクト(インスタンス)のあるアドレスを指し示すと聞きました。Stringオブジェクトは2つあってその値はabcで等しいのでハッシュコードも同じになっている訳ですが、もしハッシュコードがアドレスを示すとすると2つのオブジェクトに対してアドレスは1つとなりますが… (3)上の(2)に関連して参照値four、fiveに関するオブジェクトのハッシュコードはともに0x17862で等しいのですが、両者を==演算子で比較するとfalseとなります。 これはどうしてですか。 どなたか詳しい方、よろしくお願いします。 public class EqualsCheckX { public static void main(String[] args) { Moof one = new Moof(8); Moof two = new Moof(8); Moof three = one; int a = one.hashCode(); int b = two.hashCode(); int c = three.hashCode(); String four = new String("abc"); String five = new String("abc"); String six = four; int d = four.hashCode(); int e = five.hashCode(); int f = six.hashCode(); System.out.println("Moof " + " one : " + one + " two : " + two + " three : " + three); System.out.println("String" + " four : " + four + " five : " + five + " six : " + six); System.out.println(); System.out.println("hashCode" + " one : " + Integer.toHexString(a) + " two : " + Integer.toHexString(b) + " three : " + Integer.toHexString(c)); System.out.println("hashCode" + " four : " + Integer.toHexString(d) + " five : " + Integer.toHexString(e) + " six : " + Integer.toHexString(f)); System.out.println(); // String if (four == five) { System.out.println("String : four and five are equal"); } else { System.out.println("String : four and five are not equal"); } if (four == six) { System.out.println("String : four and six are equal"); } else { System.out.println("String : four and six are not equal"); } } } class Moof { private int moofValue; Moof(int val) { moofValue = val; } } C:\MyJava>java EqualsCheckX Moof one : Moof@1ac04e8 two : Moof@765291 three : Moof@1ac04e8 String four : abc five : abc six : abc hashCode one : 1ac04e8 two : 765291 three : 1ac04e8 hashCode four : 17862 five : 17862 six : 17862 String : four and five are not equal String : four and six are equal
- データ型で質問です。
JAVA勉強中のものです。 データ型で質問があります。 class Animal{ public void run(int speed){ System.ou.println("My animal is running"); } } class Dog extends Animal{ public void run(long speed){ System.out.println("My dog is running"); } } class Test{ Public Static void main(String args[]){ Animal myAnimal = new Dog(); -----* myAnimal.run(5); } } 出力結果は My animal is running になりますが、わかりません。 *行は実際のオブジェクトはDog型で,次のmyAnimal.run(5)は インスタンスメソッドなので、オブジェクトのDogを見に行くと 思うのですが、違うのですか? 本に書いてあったので解説お願いします。
- データ型で質問です。
JAVA勉強中のものです。 データ型で質問があります。 class Animal{ public void run(int speed){ System.ou.println("My animal is running"); } } class Dog extends Animal{ public void run(long speed){ System.out.println("My dog is running"); } } class Test{ Public Static void main(String args[]){ Animal myAnimal = new Dog(); -----* myAnimal.run(5); } } 出力結果は My animal is running になりますが、わかりません。 *行は実際のオブジェクトはDog型で,次のmyAnimal.run(5)は インスタンスメソッドなので、オブジェクトのDogを見に行くと 思うのですが、違うのですか? 本に書いてあったので解説お願いします。
- オブジェクトの参照およびハッシュコードについて
下記のプログラムは任意のクラスMoofおよびStringクラスについてそれらのオブジェクトの参照値とハッシュコードをプリントし、さらにStringオブジェクトの参照値同士の比較をしています。 次の質問に対して分かりやすくご教示ください。 (1)Moofオブジェクトについては参照値そのものの値を出力しているようですが、Stringオブジェクトの場合はオブジェクトの値(abc)が出力されているのは何故ですか (2)参照値の構成は(クラス名+@+16進ハッシュコード)であり、オブジェクト(インスタンス)のあるアドレスを指し示すと聞きました。Stringオブジェクトは2つあってその値はabcで等しいのでハッシュコードも同じになっている訳ですが、もしハッシュコードがアドレスを示すとすると2つのオブジェクトに対してアドレスは1つとなりますが… (3)上の(2)に関連して参照値four、fiveに関するオブジェクトのハッシュコードはともに0x17862で等しいのですが、両者を==演算子で比較するとfalseとなります。 これはどうしてですか。 どなたか詳しい方、よろしくお願いします。 public class EqualsCheckX { public static void main(String[] args) { Moof one = new Moof(8); Moof two = new Moof(8); Moof three = one; int a = one.hashCode(); int b = two.hashCode(); int c = three.hashCode(); String four = new String("abc"); String five = new String("abc"); String six = four; int d = four.hashCode(); int e = five.hashCode(); int f = six.hashCode(); System.out.println("Moof " + " one : " + one + " two : " + two + " three : " + three); System.out.println("String" + " four : " + four + " five : " + five + " six : " + six); System.out.println(); System.out.println("hashCode" + " one : " + Integer.toHexString(a) + " two : " + Integer.toHexString(b) + " three : " + Integer.toHexString(c)); System.out.println("hashCode" + " four : " + Integer.toHexString(d) + " five : " + Integer.toHexString(e) + " six : " + Integer.toHexString(f)); System.out.println(); // String if (four == five) { System.out.println("String : four and five are equal"); } else { System.out.println("String : four and five are not equal"); } if (four == six) { System.out.println("String : four and six are equal"); } else { System.out.println("String : four and six are not equal"); } } } class Moof { private int moofValue; Moof(int val) { moofValue = val; } } C:\MyJava>java EqualsCheckX Moof one : Moof@1ac04e8 two : Moof@765291 three : Moof@1ac04e8 String four : abc five : abc six : abc hashCode one : 1ac04e8 two : 765291 three : 1ac04e8 hashCode four : 17862 five : 17862 six : 17862 String : four and five are not equal String : four and six are equal
- コンストラクタの処理と参照が返るのはどちらが先?
このページ(http://homepage1.nifty.com/algafield/core2.html)の最後でリンクされている英語ページ(http://www.ibm.com/developerworks/java/library/j-dcl.html)を英語を苦労して読んでみると、 | instance = new Singleton(); | | は、コンストラクタが起動する前にinstanceへ値がセットされるので、 | コンストラクタが終わらないうちに別のスレッドで if(instance!=null) が | 真となり、初期化の終わっていないシングルトンへの参照を返してしまう | 問題がある。 | (「Thread 1 proceeds to //3 and makes instance non-null, but before the constructor executes. 」の辺りです) という要旨のようですが、 JVM1.5.0_06とEclipse3.2.0 のデバッガで確かめてみると、コンストラクタが終わるまではinstanceはnullでした。 英語ページの日付が2002年だったので、当時のVMではそうだったということでしょうか?あるいは、単に私の方法で再現できないだけで、やはりコンストラクタ終了前にinstanceに値がセットされるものなのでしょうか?
- アプレットでチェックボックスがチカチカする。
java初心者です。 アプレットでチェックボックスを描画したらチカチカしてしまいます。他のGUI部品(というんでしょうか?ボタンとか)の場合はそういうことはないんですが・・・。 チカチカを直したいです。 よろしくお願いします。
- 描画した線や画像などを消す方法。
アプレットを勉強している初心者です。 イベントであるボタンを押すと、ある数字が描画される、というものを作ったのですがそれを消す方法で悩んでいます。白い正方形で塗りつぶすのかな、と思ったのですが、手元の入門書のコードだとpaintメソッドの中で if(flag != 0){g.drawImage(myImg,0,0,this); と書くだけでそれを実装できているみたいなんです。「画像が出るボタン」を押すとフラグを1にしてrepaint()メソッドでpaintメソッドを呼び出して(?repaintメソッドの説明があまりなくてrepaintメソッドの効果がいまいちよく分かりません)画像を描画して、「消すボタン」を押すとフラグを0にしてrepaint()メソッドを実行してpaintメソッドを呼び出して(?)フラグが0なので結果何もしない。という流れです。 私の感覚だと消すボタンを押してもpaintメソッド内で何もしないなら画像が出たまんまなんじゃないか?と思っているのですが、ちゃんと画像は消えます。 (本当はコードを全部載せられれば一番いいのでしょうが、本に掲載されているコードなのでムリだと思うので載せません) どういうことが起こっているのでしょうか?また一度描画されたものを消す方法はどういう方法があるのでしょうか? よろしくお願いします。