ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:アプレットでのLookAndFeel変更について) アプレットでのLookAndFeel変更について 2002/07/24 16:41 このQ&Aのポイント アプレット(Swing)のLookAndFeel変更方法について起動時のLookAndFeelがWindows調になり、再表示時にメタル調に戻る現象について問題解決の方法について アプレットでのLookAndFeel変更について お世話になります。 現在、JRE1.3.1の環境でアプレット(Swing)の開発をしております。 LookAndFeelを変更するために、 アプレットのクラスに static { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch(Exception e) { } } を書いているのですが、最初の起動時のみWindows調になります。 ブラウザを消さないで(VMが残ったまま)アプレットを再表示しようとすると、メタル調に戻ってしまうのですが、 なんとかする方法は無いのでしょうか?? 質問の原文を閉じる 質問の原文を表示する みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー ct27 ベストアンサー率62% (48/77) 2002/07/24 17:18 回答No.1 SwingUtilities.updateComponentTreeUI(Component)を呼べばOKだと思いますよ。 (JavaAPIも参照してみて下さい) 参考URL: http://java-house.jp/ml/archive/j-h-b/046695.html#body 質問者 お礼 2002/07/25 09:57 ありがとうございます。 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); SwingUtilities.updateComponentTreeUI(this); でできました!! 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Java 関連するQ&A 署名付アプレットの開発方法 いつもお世話になっております。 署名付アプレットの開発を行った方にお聞きしたいのですが、開発用の証明書はどこから入手しているのでしょうか? 環境:JRE1.3+Swing 機能:クライアントのファイルを操作したい Sunのページ http://java.sun.com/products/plugin/1.3/docs/ja/rsa_signing.html を読みながら試そうとしたのですが、証明書が無いので 結局は試せなかったのです。 PS SSL用の証明書と署名付アプレットで試用する証明書は違うものなのでしょうか??? 超基本的な質問?ファイルの変数 すごく基本的な質問だと思うのですが、 FileWriter 変数をクラスのメンバとしては持てないのでしょうか? たとえば、下のように書くとエラーが出るのですが、何がまずいのでしょうか? import java.io.FileWriter; public class FileTest { FileWriter fw; public static void main(String[] args) { try { fw = new FileWriter("test.txt"); fw.close(); } catch (Exception e) { System.out.println("Exception: " + e); } } } Thread のターゲット切り替えについて 以下のようなソースを書きました。Runnableを実装しているクラスをスーパークラスに持つクラスThreadSampleChildをインスタンス化した後にそのクラスのThreadを実行し、途中で親クラスのスレッドに切り替えることを目的としているのですが、切り替わらずに子クラスのThreadが引き続き継続してしまいます。 理由はなんとなくわかるのですが。子クラスから親クラスのThreadを実行させるためにはどう工夫すればよいのでしょうか? class ThreadSample implements Runnable { Thread threadp; ThreadSample() { } public void run() { while(true) { try { System.out.println("Parent"); Thread.sleep(500); } catch(Exception e) { break; } } } public void makingThreadParent() { threadp = new Thread(this); } } class ThreadSampleChild extends ThreadSample { Thread threadc; ThreadSampleChild() { } public void run() { while(true) { try { System.out.println("Child"); Thread.sleep(500); } catch(Exception e) { break; } } } public void makingThreadChild() { threadc = new Thread(this); } public void exe() { while(true) { threadc.start(); try { Thread.sleep(10000); } catch(Exception e) { } threadc.interrupt(); makingThreadParent(); System.out.println("Thread Change !!!!"); threadp.start(); try { Thread.sleep(10000); } catch(Exception e) { } threadp.interrupt(); } } public static void main(String args[]) { ThreadSampleChild tsc = new ThreadSampleChild(); tsc.makingThreadChild(); tsc.exe(); } } ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム JAVAのExceptionについて(エラーハンドリング) JAVAの例外の取り扱いについて お世話になります。JAVAでWebアプリケーションを開発しているものです。エラーハンドリングについて、悩んでいます。 私は、我流でプログラムの開発を行ってきたため、エラーハンドリングについて、あまり知識がありません。 今回とあるプロジェクトのリーダーを任されることになり開発を進めていたのですが、気がついたらメンバーのプログラムにtry,catch,throwsなどのエラーハンドリングがコーディングされていない状態で困っています。(みんな外国人で私が今まで一から教えていました。) そこで、皆様はどのようにJAVAで例外を扱っているのかをお伺いしたいと思い投稿いたしました。 私の少ない認識では、 (1)最上位のクラス、画面に一番近いクラスでtry,catchを行う (2)Exceptionはすべてのクラスの例外をcatchするが、一つ一つのエラーを明確に定義する方がよい(何のエラーが発生したのかわからない為) ⇒ただし、ここが一番の悩みどころです。エラーを設定する考え方として、配列を扱っている場合は、ArrayIndexとか、ファイルを扱っている場合はI/OExceptionとかソースコードを見て判断すべきでしょうか? (3)独自エラークラスを作る場合は、Exception,RunnableExceptionを敬称する。 ⇒そもそも何故、独自Exceptionクラスを作る必要があるのでしょうか?画面によってメッセージ、処理、遷移先を変えたいから? 上記が私の持っている知識と、疑問点です。 正直自分自身がよくわかっていないため、他の外国人メンバーに説明できません。とりあえず、Exceptionをthrowするように言っているのですが、このままじゃまずいと思い投稿しました。 どなたか忌憚のないご意見をお聞かせください。 Windows7のIEでJavaアプレットの設定 いつもお世話になっております。 以下の環境でIEでJavaアプレットの設定をしたいのですが、カテゴリーとして出現しません。 アプレットは使用できるのですが、設定箇所を知りたいのです。 ご教授、よろしくお願いいたします。 ● OS: Windows7 ● ブラウザ: IE8、IE9 ● JRE: 6-update26 ● 手順: IEの「ツール」-「インターネットオプション」-「詳細設定」をひらく。 ※xpのIE8であれば、上記の「詳細設定」の画面にJava(Sun)というカテゴリーが出現しており、アプレットの使用を選択するチェックボックスがあります。Windows7だと同じ手順をふんでも出現しません・・・ アプレットでマウスイベントが出ない クリックしても反応しません。 また、マウスイベントが発生したときに飛ぶメソッドにSystem.out.printlnを入れるとException in thread "AWT-EventQueue-0" java.lang.NullPointerException: component argument pDataが出ることがあります。 import java.applet.Applet; import java.awt.Graphics; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class NewJApplet extends javax.swing.JApplet implements MouseListener{ int x = 10; int y = 10; public void init() { x = 50; y = 50; } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed( MouseEvent e ){ x = e.getX(); // マウスがクリックされた位置のx座標を取得する y = e.getY(); // マウスがクリックされた位置のy座標を取得する repaint(); // アプレットの再描画を指示する } public void mouseReleased(MouseEvent e) { } public void paint(Graphics g) { g.fillOval(x,y,10,10); } } 使ってるのは jre1.6.0_01 NetBeans 5.5です 例外処理がまったくわかりません!! 下のプログラミングについていくつか質問があります。 (1)etest()メソッドってなんですか? (2)存在しないファイルを開くってどういうことですか? (3)FileReader( )対応catch節、Close( )対応catch節ってなんですか? (4)あと、プログラミングあとの本の解説の部分がよくわかりません。抜粋してみます。 「一般的な例外クラスはxxxExceptionというクラス名をしています。このタイプの例外クラスはみな「Exception例外クラス」をスーパークラスにしています。この場合、「catch(Exception e)」を使うとすべてのxxxException例外を補足できるという仕様になっています。ですから下のetest( )メソッドは次のように、ひとつのcatch節で記述することができます。このようにしても表示される4エラーメッセージ(eで指示)は、正しく発生例外(FileNotFoundExceptionまたはIOException) 対応のものになります。」 public static void etest( ) { try { // try節を書く FileReader fr = new FileReader("xfile.txt"); } catch (FileNotFoundException e) { // FileReader( )対応catch節 System.out.println("例外1: " + e); // 例外情報を表示 return; // 戻る } catch (IOException e) { // Close( )対応catch節 System.out.println("例外2: " + e); // 例外情報を表示 return; // 戻る } System.out.println("ファイルは正しくオープンされました"); } } よろしくお願いします。 javaアプレットとPHPの通信 タイトルの通りなのですが、 javaアプレットで出た結果(Stringや数値)を phpに送信する方法が知りたいです。 他のサイトを調べていたら、 下の様なプログラムがありました。 private String send(String stArg) { try { //送信先URL URL url = new URL(getCodeBase(), "sample.php"); //ネットワーク接続 URLConnection urlCon = url.openConnection(); urlCon.setDoOutput(true); urlCon.setDoInput(true); urlCon.setAllowUserInteraction(false); //送信処理 PrintWriter writer = new PrintWriter(urlCon.getOutputStream()); writer.print(stArg); writer.close(); } catch (Exception e) //エラー処理 { e.printStackTrace(); } return "error"; } } これはString stArgをsample.phpに送る処理だと 書いてあったのですが、 php側でどういった様に受信すれば良いのかがわかりません。。。 自分のイメージとしては、アプレットから送信したデータ(stArg)を php上でPOST[$stArg]と言った形で受信したいです。 私の考え方自体がおかしいかもしれないですが、 何か良い方法、または良いサイトを知っていたら お教えいただきたいです。 [JAVA]try 内の変数を外で!? お世話になります! try{ int rsCount = ... ... }catch(Exception e){ ... } out.println(rsCount); とした場合、初期化されていない可能性があるとかで使えません。 try catch 内で定義したものは使えないのですか?? 反対に、どうすれば解決できますか? try catch public String getMessage() { try { .... return "okay"; } catch (Exception e) { return "error"; } のように、エラーが起こったら catch 句で String を返すとうプログラムはありですか? try~catchについて プログラム初心者です 繰り返し処理の中でtry~catchにスローしてもいいでしょうか?(正常にfor文は終了しますか?) try { for($a = 0; $a < 5; $a++) { if($a==3){ throw new Exception('3'); } } catch (Exception $e) { $msg = $e->getMessage(); } よろしくお願いします 他ファイルで定義された自作例外の受け方 他ファイルで定義された自作例外の投げ方と受け方を 教えて下さい。 // ------ Class.java ---> import java.io.*; public class Class1 { static Class2 oClass2; public static void main (String[] args) { try { oClass2 = new Class2(); System.out.println("main"); oClass2.vfFunc(); } catch (MyException e) { System.out.println("catch MyException"); } catch (Exception e) { System.out.println("catch Exception"); } } } // <------ Class1.java --- // ------ Class2.java ---> import java.io.*; public class Class2 { public Class2() { System.out.println("Class2コンストラクタ"); } public void vfFunc() { System.out.println("Class2 vfFunc"); throw new MyException(); } public class MyException extends Exception { public MyException() { System.out.println("MyException"); } } } //<------ Class2.java --- AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム try~catch php初心者です try~catchをわかりやすく教えてください throw new Exceptionが出現したら、catchまでの処理をしないでとばすとゆうことですか? try~catchを抜けたら、他の処理は普通に実行されるのでしょうか? try~catchのカッコ{で囲む範囲は大きくしたほうがいいでしょうか?(大きく囲むと処理スピードおそくなりますか?) try { throw new Exception('エラーが発生しました'); print "hoge"; } catch (Exception $e) { echo '例外発生', $e->getMessage(), "\n"; } print "foo"; よろしくお願いします TCP/IP通信について 現在、以下のようにTCP/IP通信のプログラミングを行っており、 サーバ/クライアント別々に4byteのデータ送信を10msec毎に10秒間行っております。 現在、WimdowsVista-Windows7間で各々をサーバ/クライアントとして順に起動し、 相互に4byte送信しているハズが、倍の8byteや12byteとデータが連なって送信されている 事象が発生してます。 OutputStreamではwrite後にflushを行っているので、flush契機でメモリ上に蓄えられた 送信用バッファが送信されるイメージでおりますが、4byteで送信できていないように見えます。 上記について、解決方法をご存じであればご教授お願い致します。 <Server.java> ===== public class Server { public static ServerSocket ss = null; public static Socket soc = null; private static InputStream is = null; private static OutputStream os = null; public static void main(String[] args) { try { // サーバソケット生成 ss = new ServerSocket(5000); soc = ss.accept(); is = soc.getInputStream(); os = soc.getOutputStream(); Thread rcvTh = new ServerRcvThread(is); rcvTh.start(); Thread sndTh = new ServerSndThread(os); sndTh.start(); // 10秒スリープ try{ Thread.sleep(10000); } catch ( Exception e){ e.printStackTrace(); } // スレッド停止 rcvTh.stop(); sndTh.stop(); } catch (IOException e) { e.printStackTrace(); } finally{ try { is.close(); os.close(); soc.close(); ss.close(); } catch (IOException e) { e.printStackTrace(); } } } } class ServerSndThread extends Thread{ private static OutputStream ous = null; ServerSndThread( OutputStream os ){ this.ous = os; } public void run(){ byte sndData[] = new byte[4]; sndData[0] = 0x01; sndData[1] = 0x02; sndData[2] = 0x03; sndData[3] = 0x04; try { while(true){ // データ書込み ous.write(sndData); ous.flush(); System.out.println("データ送信"); // 0.01秒スリープ try{ Thread.sleep(10); } catch ( Exception e){ e.printStackTrace(); } } } catch (IOException e) { e.printStackTrace(); } } } class ServerRcvThread extends Thread{ private static InputStream ins = null; ServerRcvThread( InputStream os ){ this.ins = os; } public void run(){ byte rcvData[] = new byte[16]; int size = 0; try { while(true){ // データ読込み size = ins.read(rcvData); System.out.println("size:"+size+"byte"); } } catch (IOException e) { e.printStackTrace(); } } } ===== <Client.java> ===== public class Client { private static Socket soc = null; private static OutputStream os = null; private static InputStream is = null; public static void main(String[] args) { try { // ソケット生成 soc = new Socket("192.168.3.3", 5000); is = soc.getInputStream(); os = soc.getOutputStream(); Thread rcvTh = new ClientRcvThread(is); rcvTh.start(); Thread sndTh = new ClientSndThread(os); sndTh.start(); // 10秒スリープ try{ Thread.sleep(10000); } catch ( Exception e){ e.printStackTrace(); } // スレッド停止 rcvTh.stop(); sndTh.stop(); } catch (IOException e) { e.printStackTrace(); } finally{ try { is.close(); os.close(); soc.close(); } catch (IOException e) { e.printStackTrace(); } } } } class ClientSndThread extends Thread{ private static OutputStream ous = null; ClientSndThread( OutputStream os ){ this.ous = os; } public void run(){ byte sndData[] = new byte[4]; sndData[0] = 0x04; sndData[1] = 0x03; sndData[2] = 0x02; sndData[3] = 0x01; try { while(true){ // データ書込み ous.write(sndData); ous.flush(); System.out.println("データ送信"); // 0.01秒スリープ try{ Thread.sleep(10); } catch ( Exception e){ e.printStackTrace(); } } } catch (IOException e) { e.printStackTrace(); } } } class ClientRcvThread extends Thread{ private static InputStream ins = null; ClientRcvThread( InputStream os ){ this.ins = os; } public void run(){ byte rcvData[] = new byte[16]; int size = 0; try { while(true){ // データ読込み size = ins.read(rcvData); System.out.println("size:"+size+"byte"); } } catch (IOException e) { e.printStackTrace(); } } } ===== アプレットに画像が表示されません 今晩は、java初心者です、宜しくお願いします。 下のようなプログラムを書きましたが、画像がアプレットに表示されません。 画像はeclipseで同じプロジェクト(フォルダ)内に置いています。 文法上のエラーは出ておりません。 原因がわかりません宜しくお願いします。 ============================ public class Test extends Applet { MediaTracker tracker ; Image img ; public void init() { tracker = new MediaTracker( this ) ; img = getImage( getDocumentBase() , "a.jpg" ) ; tracker.addImage( img , 0 ) ; } public void start() { try { tracker.waitForAll(); } catch (InterruptedException e) { } } public void paint( ) { Graphics g2 = getGraphics(); g2.drawImage( img , 0 , 0 , 50 , 50 , this ) ; } } Oracleに接続すると、それ以降の処理を素通りしてしまう 下記のようなメソッドで<1><2>の後、すぐに<7>に処理をしてしまいます。 <1>~<7>と動くと思っていたのですが、<3>~<6>が全て無視されます。 どこか問題があるのでしょうか? ちなみに、<1>で無効なURLを指定するとSQLExceptionでcatchされます。 try { Class.forName("oracle.jdbc.OracleDriver"); try { //<1> conn = DriverManager.getConnection (URL, UID, PSW); //<3> System.out.println("Oracleと接続しました"); } catch (SQLException e) { System.out.println("oracle接続エラー"); } catch (Exception e) { System.out.println("oracle接続エラー"); } //<4> try { //<5> stmt = conn.createStatement(); //<6>sql文の作成 // select文の実行 //(略) } catch (Exception ex3) { System.out.println("なんかエラーです"); } } catch (Exception e){ System.out.println("その他エラーです"); //<2> } finally { //特になし } //<7> return list; ファイル操作 ファイルにTABを入れる ファイルの入出力をやっています。一文字を読み込んだ後にOUTPUTファイルにカンマの代わりにTABキーを入れ込みたいのですが、それがどうしてもうまくいきません・・・ public class FileRead { // ファイル名 private static final String INFILE_NAME = "input01.csv"; private static final String OUTFILE_NAME = "output01.tsv"; public static void main(String[] args) { // FileReaderクラス宣言 BufferedReader fr = null; FileWriter fos = null; try { // FileReaderクラス生成 fr = new BufferedReader(new FileReader(INFILE_NAME)); fos = new FileWriter(OUTFILE_NAME); // 読み込み int i; while ((i = fr.read()) != -1) { //System.out.print((char)i); //char chra=(char)i; fos.write(i); } System.out.println("--- 読み込み完了 ---"); } catch (IOException e) { System.out.println("Exception : " + e); } finally { try { // FileReaderクラスを閉じる 続く・・・ 教えてください!! javaサーバーとポートを入力してメッセージ こんにちは、java初心者なのですが、やり方がいまいちわかってないので教えてください。 このプログラムでは、プロンプトからホストナンバーを入力して、フレームが表示されるようになってるんですが、実行するときに、フレーム(swing)を先に表示させて、サーバーとポートを入力してから 数字などを入力できるようにしたいのですが、どうしたらいいのかわからないので教えてください。 サーバーのクラス public class ThreadedEchoServer { public static void main(String[] args) { int i = 1; try { ServerSocket s = new ServerSocket(7776); for (;;) { Socket incoming = s.accept(); System.out.println("Spawning " + i); new ThreadedEchoHandler(incoming, i).start(); i++; } } catch (Exception e) { System.out.println(e); } } } class ThreadedEchoHandler extends Thread { private Socket incoming; private int counter; public ThreadedEchoHandler(Socket i, int c) { incoming = i; counter = c; } public void run() { try { BufferedReader in = new BufferedReader(new InputStreamReader(incoming.getInputStream())); PrintWriter out = new PrintWriter(incoming.getOutputStream(), true); out.println("Hello! Please send me an number (0 to exit)."); boolean done = false; while (!done) { String str = in.readLine(); if (str == null) done = true; else { try { int i = Integer.parseInt(str); if (i == 0) { out.println("End !!!"); done = true; break; } String forClient = (i % 2) == 0 ? " You are wrong " : " You are write "; out.println(forClient); } catch (Exception e) { out.println("Please send a number!"); } } } incoming.close(); } catch (Exception e) { System.out.println(e); } } } IEが落ちて、hs_err_pidファイルができるんですが? IEが突然落ちて困っています。 IEがクローズした後、デスクトップに hs_err_pid****.log というファイルがデスクトップに作られています。 他のサイト等で調べてみたところ、Javaアプレットを起動しようとしたところで落ちているようなことが書かれていました。 Javaが原因でしょうか? Java VM のバージョンは JRE1.3.1_09 です。 電子入札システムの都合上、これでなければいけないと言われています。(動作が保証できないそうです) LOG内容は以下の通りです。これ以下まだまだ続きますが。 An unexpected exception has been detected in native code outside the VM. Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=********** Function name=JNU_NewStringPlatform Library=C:\PROGRA~1\JavaSoft\JRE\139DB1~1.1_0\bin\java.dll ヘルプデスクとかにも問い合わせたのですが、解決には至っていません。セキュリティの問題だとも言われたのですが。 どうかお願いします。 キャラクタ?バイト? 下記プログラムを作成しましたが、 b1,b2の配列結果が等しくなりません。 b1の結果はキャラクタデータ(文字)のようですが、 b2の結果はバイトデータのようです。 原因は何故なのでしょうか??? b1は、String型をbyteデータに変換してbyte配列へ b2は、直接byteデータをbyte配列へ import java.io.*; public class Sample { private static final String FILE_NAME = "Output01.txt"; public static void main(String[] args) { // FileOutputStreamクラス宣言 FileOutputStream fos = null; try { fos = new FileOutputStream(FILE_NAME); byte[] b1 = "AB".getBytes(); for (int i = 0; i < b1.length; i++) { fos.write(b1[i]); } byte [] b2 = {(byte)A, (byte)B}; for (int i = 0; i < b2.length; i ++){ fos.write(b2[i]); } } catch (Exception e) { System.out.println("Exception : " + e); } finally { try { fos.close(); } catch (Exception et) { } } } } 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ありがとうございます。 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); SwingUtilities.updateComponentTreeUI(this); でできました!!