1 名前:Javaが初心者 mailto:sage [2008/05/12(月) 03:05:27 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド114【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1207385614/ 次スレは>>990 あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/
152 名前:150 mailto:sage [2008/05/16(金) 10:32:28 ] すみません、自前でできる方法をお願いします。
153 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 10:43:36 ] >>147 使い方としては、 Color color = Color.getColor("red"); だけど、ドキュメントを見るとシステムプロパティがどうとか書いてあっ てよくわからんね。
154 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 10:49:05 ] >>152 自前でやるんなら、自分でCSV書き出すプログラム書くだけだよ。
155 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 11:40:26 ] >>152 for(data[] row : array){ for(data cell :row){ data.toString()と","をファイル出力 }}
156 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 12:41:17 ] >153 それはダメ。 その実体は new Color(int, int, int, int) の引数を結合した数値の文字列表現。 > 指定されたプロパティが見つからない場合、 > ***または整数値として解析できなかった場合***、null が返されます。 >145 の言う「名前から色」というのは、どこかで対応表を持つ必要があるから、 公開ライブラリには向かない、と私は思う。 要は、Map<String, Color> か何かで専門クラスを作りましょう、と。
157 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 12:45:53 ] >>145 javax.swing.txt.html.StyleSheet#stringToColor(String) とか?
158 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 12:47:53 ] >>155 改行してない。
159 名前:デフォルトの名無しさん [2008/05/16(金) 18:00:57 ] アプレット初めて半年の初心者なんですが、 JToggleButton();で押下時のボタン色を変えるシンプルな方法はありますか? メソッドをネットで検索しても見つかりませんでしたので、 JToggleButton();を継承して、オーバーライドしたクラスを作ったんですが、 ボタンのイベントの"actionPerformed()"が、使用されるアプリのほうが 自分より早く呼ばれてしまう為、旨くいきませんでした・・・
160 名前:デフォルトの名無しさん [2008/05/16(金) 18:05:23 ] こんな感じで作りました。 public class IToggleButton extends JButton implements ActionListener { private boolean isSelected = false; IToggleButton(String str){ super(str); addActionListener(this); if (this.isSelected) setBackground(Color.pink); else setBackground(null); } public void actionPerformed ( ActionEvent e ) { isSelected = isSelected?false:true; if (isSelected) setBackground(Color.pink); else setBackground(null); } public void setSelected(boolean selected){ this.isSelected = selected; if (this.isSelected) setBackground(Color.pink); else setBackground(null); } public boolean isSelected() { return(this.isSelected); } }
161 名前:デフォルトの名無しさん [2008/05/16(金) 19:55:47 ] プログラミング初心者が最初に行き着く プログラム言語のスレはココですか?
162 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:40:20 ] いえいえ、アッセンブラ〜やCを長年経験した上での質問です・・・
163 名前:デフォルトの名無しさん [2008/05/16(金) 22:35:26 ] 若い女のプロ意識に脱帽編… 若い女の営業スマイル。よく出せるなと思っていました。 コンビニやスーパーでも俺みたいなきもいおっさんによくこうも にこやかな営業スマイルだせるなと感心しておりました。 こないだ、パチンコ屋に行きました。そこは町の中心部にあり自宅から 4,50分のところです。そこは、衣装もエロチックでミニスカートにスリットなる 切れ目が入っていて、店員さんもなかなかの魅力的な娘が多いです。 それも楽しみにときどきそこの店に行きます。 あまりでないので、自動販売機のところで一服してるとかわいい娘が コーヒーを配っています。あまりこの店までこれないので、ついミニスカートのスリットから見える 太ももを凝視して興奮してしまいました。かなり長い間エロい目つきで見てたはずです。 相手に気づかれました。さすがに、とってもいやな顔されるだろうとおもっていました。 最初はたしかにちょっといやな顔をしましたが、すぐにあのにこやかな営業スマイルにもどりました。 これはびっくりしました。いくら店員とはいえ、俺みたいなもてないブサ男に この場面で営業スマイルとは・・・ 恐れ入りました。パチンコ屋のあの店員。
164 名前:163 mailto:sage [2008/05/16(金) 22:36:08 ] すまん。誤爆った。リロードされたら、プログラム板だった。すまそ。
165 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:39:49 ] クライアントの変更要求や追加要求に嫌な顔をして見せる奴は、パチ屋の 女性店員よりプロ意識が低いと言いたいわけですね?わかりますw
166 名前:デフォルトの名無しさん [2008/05/16(金) 22:54:26 ] 基礎からのJava www.7andy.jp/books/detail?accd=31942656 やさしく学ぶ Sun認定Javaプログラマ www.7andy.jp/books/detail?accd=32020519 この2つでどっちを買うか迷ってるんだけどどっちがオススメ? もしくは他にオススメある? 一応研修でざっと習って「やさしいJAVA」ってのも貰った 基本をきっちり押さえつつも実践的な練習もできる本が欲しい 他のSUN認定の分厚いのや外人が書いた翻訳された本は見にく過ぎて無理だった とりあえず逆引きの本は1冊買った 誰か助けて
167 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:12:15 ] >>166 「実践的な練習」がどのレベルを指してるのか分かんない。 1.実用的なプログラムを、とりあえず動くレベルで書けるようになりたい。 2.動けばいいレベルなら既に書けるから、より良いコーディングを学びたい。 1なら言語本(Javaそのものを説明してる類の本)はやさしいJava1冊で十分。 それよりも実際に何か書いてみる方に注力して、書きながらその都度必要 な情報を検索する、それでもみつからないなら本を探して買うってやり方の 方が経済的だし効率いい。 言語本を何冊も買うのは意味ないし、言語本を2冊読む時間があるなら1 冊だけ読んでもう1冊読む分の時間で実際にコード書く方が効率いい。 あと、1のレベルに達してない人が2を求めるのは非効率。先ずは1から。 もし2ならJavaの鉄則とJavaの格言は良い本だよ。読みやすいしね。
168 名前:デフォルトの名無しさん [2008/05/16(金) 23:27:34 ] >>167 こんな時間にどうもありがとう! 明日その2冊を立ち読みしてみる
169 名前:デフォルトの名無しさん [2008/05/17(土) 00:21:32 ] 初歩的な質問ですみません javaプログラミングをするのに優れたフリーのテキストエディターを教えて下さい。 できれば文字の色を変えてくれて、Tabで列を揃えてくれるやつがいいです。 OSはWindows XPです。 よろしくお願いします。
170 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:36:59 ] java.util.Collections#synchronizedList() の使い道(使い方)がわかりません。 java.util.List は同期化されませんが、以下のようにすれば、list はスレッドセーフになって帰ってくるのですよね。 List unsyncList = new ArrayList(); List list = Collections.synchronizedList(unsyncList); ○質問1: マルチスレッド環境において、 Collections#synchronizedList() が返した list に対しては、 synchronized ブロックでくくらずに add() や get() しても、スレッドセーフが保たれるという理解でよいですか? ○質問2: javadoc の Collections#synchronizedList() のところに、 以下のように書いてあるのが気になります。 >返されたリストの繰り返し処理を行う場合、ユーザは、次に示すように手動で同期をとる必要があります。 > >List list = Collections.synchronizedList(new ArrayList()); > ... >synchronized(list) { > Iterator i = list.iterator(); // Must be in synchronized block > while (i.hasNext()) > foo(i.next()); >} >これを行わない場合、動作は保証されません。 これは、list の add() や get() は質問1:で同期化されるようになったが、 list.iterator() が返すイテレータへのアクセスは同期化されていないので、 イテレータでグルグルまわすときは、synchronized 文で自分で同期化してね、という理解でよいでしょうか?
171 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:42:19 ] >>169 いくつもあるし相性があるって人もいるので、 ぐぐって出てきたのを使ってみれば? あるいはEclipse、NetBeans等の統合開発環境とか 文法ミスを指摘してくれたり、デバッグ用の機能がそろってたりと何かと便利 大規模な開発にも耐えうるし、ひとつ持っておくのをお勧めする
172 名前:デフォルトの名無しさん [2008/05/17(土) 00:48:44 ] >>171 なるほど、ありがとうございます。 早速ぐぐってみます。
173 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:17:27 ] >>168 Effective Javaがいいよ!
174 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:31:30 ] >>170 sync-List は、単にsynchronizedメソッドでラップされたインスタンスを提供してるだけ。 必要とされる同期化の手続きが、著しく改善されるわけではない。 iterator で返されるインスタンスは、ラップされたものとは違うので、 生成前に必要な手続きを行う必要がある。
175 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:42:45 ] >>170 >質問1 はい。 ただし、例えば以下のようなことをしたい場合は、containsやaddがそれぞれ単体で同期されてても 間に割り込まれる可能性があるので、全体をsynchronizedで囲まないと望む結果にはならない。 if ( list.contains(x) == false ) list.add(x); >質問2 はい。 どのみち、iterator、hasNext、nextをそれぞれ単体で同期したところで、 間にaddが割り込まれたらConcurrentModificationExceptionが起きるから、使い物にならないと思う。 ところで、CopyOnWriteArrayListという便利なものもあるよ。 状況によってはおすすめ。
176 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 02:24:22 ] >>145 Color c = (Color)Color.class.getField(colorname).get(null); 要try-catch
177 名前:デフォルトの名無しさん [2008/05/17(土) 07:49:46 ] JSPの質問なのですが、ここでしてもいいものでしょうか? スレ違いなら誘導をお願いします。 DBから読み込んだ内容をテーブルとして表示し、レコードごとにボタンを置いて押すとそのレコードの詳細を表示するものを作っています。 レコードをテーブル表示するのはwhile(ResultSet.next())で<tr>〜</tr>を繰り返して実現できそうなのですが、詳細を表示するボタンに迷っています。 というのも渡すパラメータが10個あり、しかもそのうち9つがレコードの内容に依存しない共通の項目です。 ボタン一つ一つにformを作ってhiddenで10個のパラメータを付加してwhileで回すのも考えたのですが、例えば20個のレコードに対して200のhiddenが生成されるのはいかがなものかと他の手段を探しています。 buttonを押したときにonclickで遷移することも考えましたが、buttonに直接パラメータを付加できる属性はないものでしょうか?
178 名前:デフォルトの名無しさん [2008/05/17(土) 08:27:13 ] HTML(リンク)からJAVAサーブレットに情報を与えるにはどうすればいいのでしょうか。 リンク"A href=恐らくdoPostの値></A"で データをJAVAサーブレットに送信したいのですが方法がわかりません。 リンクにdoPostの情報を与えるのもわかりませんがリンクからの情報をサーブレットに値を与えデータを返す方法もわかりません。 本にも載ってないのでどうすればいいかわかりません、教えて君になってしまいますがよろしくお願いします。
179 名前:178 [2008/05/17(土) 08:52:14 ] すみませんdoPostのところはdoGetです。
180 名前:デフォルトの名無しさん [2008/05/17(土) 09:55:43 ] 質問です。 現場のソースで、 List list = new ArrayList();と記述し、ArrayListのメソッドを 使っているソースを見かけたのですが、 ArrayList list = new ArrayList()とのメリット上での差異が分りません。 良い点があるから、List list = new ArrayList();と記述するのでしょうが、 その良い点が分りません。よろしくお願いします。 一応、sjc-p1.4の資格は持っていて、SJCPに合格するだけのインターフェースの知識は あります。
181 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:01:33 ] どっちかというとHTMLの話になるわな。 そもそも、一覧から詳細にいくのに10個もパラメータいらんだろ? なんかおかしな設計ではないのか? POSTで送信する(Formを使用する)場合、 >9つがレコードの内容に依存しない共通の項目 レコード(繰り返し処理)の外側に配置すればいい 各列のハイパーリンクをクリックしたならば、JavaScriptで各行のキーをhidden項目に設定。 その後、隠しボタンにした「詳細」ボタンをJavaScriptでクリック ってのが1つの方法。 詳細がボタンであっても同様。 GETでいいならば、URLのパラメータに10個のパラメータを付ければいい。 POST/GETとFORMあたりがよく解っていないならば、まずはHTTPの勉強を汁。
182 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:07:06 ] >>180 ぶっちゃけて言えば、半端な知識のマが書いた中途半端なコードなだけ。 意図としてはListで定義されているメソッドしかlist変数では使えないって効果しかない。 これがメリットとなるか?というならば、ほとんどの場合は否。 これがメリットとなるケースは、一般的にいって定義されたクラス外からlistの参照を持つ場合。 つまり、あるクラスのフィールドとして、 private final ArrayList list = new ArrayList(); と書いてあっても、 public List getList() { return list; } とアクセサを定義しておけば、 private final List list = new ArrayList(); とする必要は(ほとんど)ない。 クラス内でArrayListをLinkedListに変更したり、配列に変更しても、List getList()さえ仕様通りの動きをすればいいわけだ。 ローカル変数でやるならばもっと意味はない。
183 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:12:13 ] あと、当然な話だけど、List list = new ArrayList();と書くよりもArrayList list = new ArrayList()と書くほうが、実装上の選択(メソッド)は増える。 極端な話、LinkedListなんて専用メソッドを活用しなきゃいらない子。
184 名前:デフォルトの名無しさん [2008/05/17(土) 10:25:11 ] 質問です。 swingでゲームを作ろうとして勉強しているものです ゲーム中(ループ中)にJPanelを実装したクラスのコンストラクタでボタンを配置 別スレッドでループ処理する。このときアクティブレンダリングして描画命令 してるのですが、なぜかボタン隠れた状態で更新されてしまいます。 下にコードを書きますので、どなたかご教授ください
185 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:26:43 ] >>180 「選択肢があるなら、抽象データ型を使え」という指針がある Listとおけば実装の詳細がより隠蔽される 例えば実装を交換したいという状況になっても、new ArrayList();の部分だけを取り替えてやればいい ・・・・一応、理論上はそういうことになってるようなのだが、 listのスコープが狭い場合はデメリットにしかならんような?使えるメソッド減るし
186 名前:デフォルトの名無しさん [2008/05/17(土) 10:26:48 ] //必要パッケージをインポート import java.awt.*; import javax.swing.*; /***************************************** * パネルクラス(中間コンテナ) * *****************************************/ class MainPanel extends JPanel implements Runnable{ //パネルサイズ public static final int WIDTH = 500; public static final int HEIGHT = 500; private Thread thread; //コンストラクタ public MainPanel(){ //サイズの設定 setPreferredSize(new Dimension(WIDTH,HEIGHT)); thread = new Thread(this); thread.start(); JButton btn = new JButton("OK"); add(btn); }
187 名前:デフォルトの名無しさん [2008/05/17(土) 10:28:14 ] //ゲームループ public void run(){ while(true){ SwingUtilities.invokeLater(new Runnable() { public void run() { gameRender(); paintScreen(); } }); try{ Thread.sleep(200); }catch(InterruptedException e){ e.printStackTrace(); } } }
188 名前:デフォルトの名無しさん [2008/05/17(土) 10:29:03 ] /*** ダブルバッファリング ***/ // ダブルバッファリング用 private Graphics dbg; private Image dbImage = null; //バッファにレンタリング public void gameRender(){ //初回時の呼び出しならばダブルバッファリング用のオブジェクト作成 if(dbImage==null){ //バッファイメージの作成(領域) dbImage = createImage(WIDTH,HEIGHT); if(dbImage==null){ System.out.println("no dbimage obj!"); return; }else{ //バッファイメージに図や画像を書き込むために必要なGraphicsオブジェクトも作っておく dbg = dbImage.getGraphics(); } } //バッファをクリアする dbg.setColor(Color.WHITE); dbg.fillRect(0, 0, WIDTH, HEIGHT); }
189 名前:デフォルトの名無しさん [2008/05/17(土) 10:29:39 ] //バッファの内容を画面に転写 public void paintScreen(){ try{ Graphics g = getGraphics(); if(g!=null && dbImage!=null){ //バッファイメージを画面に描画 g.drawImage(dbImage,0,0,null); } //システムのtoolkitオブジェクトを返し、画面を強制的に更新させる Toolkit.getDefaultToolkit().sync(); if(g!=null){ //グラフィックオブジェクトの破棄 g.dispose(); } }catch(Exception e){ e.printStackTrace(); } } }
190 名前:デフォルトの名無しさん [2008/05/17(土) 10:33:02 ] public class MPN extends JFrame{ //コンストラクタ public MPN(){ //タイトル setTitle("ウィンドウ"); setResizable(false); //ContentPaneにパネルを貼り付ける MainPanel panel = new MainPanel(); Container contentpane = getContentPane(); contentpane.add(panel); //フレームサイズをパネルに合わせて設定 pack(); } private static void createFrame(){ MPN game = new MPN(); game.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); game.setLocationRelativeTo(null); game.setVisible(true); } public static void main(String[] args) { //イベントディスパッチスレッドにフレームを作成させる SwingUtilities.invokeLater(new Runnable() { public void run() { createFrame(); } }); } }
191 名前:デフォルトの名無しさん [2008/05/17(土) 10:35:21 ] 上記ソースを投稿したものです。 長くなりすみません。 どうもダブルバッファリングするとボタンがうまく配置しません。 paintComponentメソッドを使った描画処理ではうまくいきました。
192 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 10:51:46 ] >>180 trimToSize() も clone() も使う必要ない場合だと、5文字削れてラッキーとか。 メソッド境界以外では抽象型に拘る必要がないってのもわかるけど、 ArrayList と List にも拘るほど違いないから、ぶっちゃけどうでもいい。
193 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 11:23:53 ] 自分でボタンを描画したいの? それとも親(JPanel)にボタンを描画させたいの?
194 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 11:54:22 ] >>180 俺は、後でプロファイルを取ってListの実装を最適化する予定の時、よくそう書いておく
195 名前:デフォルトの名無しさん [2008/05/17(土) 12:03:04 ] >>193 JPanelに描画させたいっす。 コンストラクタでやってるように なのになぜか裏にいってしまうんだああああ!なぜだあああ!
196 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 12:31:26 ] dbImageのgraphicsを取得してJButtonのpaintに渡してdbImageにボタンを書き込む dbImageを描画した後にrepaintして親を再描画させる 適当に考えてみたので見当違いだったらごめん
197 名前:186 [2008/05/17(土) 12:44:26 ] パネルにボタンを配置したあと パネル上に描画処理をほどこすと、かぶるものなのでしょうか ダブルバッファ処理をしないでpaintComponentを使った描画はかさならず描画されました ダブルバッファ処理は別スレッド処理なのでイベントディスパッチスレッドで 処理させているのですが、そこらへんがおかしいのでしょうか うむうむ・・・・
198 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 12:47:16 ] ダブルバッファリングって書いてあるけど、バッファ1つだけじゃん……
199 名前:186 [2008/05/17(土) 13:07:34 ] >>188 描画する領域と、描画する前のサブ領域でダブルバッファリングでは? 参考サイトにはそうかいてあった
200 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:17:28 ] >>199 その参考サイトが間違ってるだけじゃね? 例えば、そのプログラムだと gameRender() と paintScreen() を マルチスレッドで並列動作させたらチラつくでしょ。 チラつかないようにgameRender() が使う描画用の領域と、 paintScreen() が使う、既に描画完了してる表示用の領域と 二つ持つのがダブルバッファリング。 paintScreen() 相当の処理が十分速ければダブルでいいけど、 遅い場合はトリプルバッファリングが必要になったりする。 まぁ、いまどきは Window#createBufferStrategy() 使えば済む話だから 自前でダブルバッファリングする必要はあんましないはず。
201 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:25:11 ] JtextAreaに対して入力キー制限したいです つまり、左右方向キーは入力を受け付けて上下方向キーは無視、のような ただJtextAreaに直接KeyEentリスナーを加えてもダメみたいだたし 何かいい方法があればご教示下さい
202 名前:201 mailto:sage [2008/05/17(土) 14:26:47 ] 言葉足らずだったので補足します 左右キーでカーソルを左右に移動、上下キーでは何も処理をいない、 というテキストアリアを実現したいと考えています
203 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:34:45 ] コンポーネントは描画されて表示している部品だから その上から塗りつぶしたら見えなくなるよ
204 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:41:26 ] >>201 何が真っ先に呼ばれるんだろう protected void processKeyEvent(KeyEvent e)かな・・・自信ない 上手くいったら報告プリーズ
205 名前:186 [2008/05/17(土) 14:49:13 ] >>203 ありがとうございます。 とすると、上のコードではどうなるのでしょうか 私も考えているのですがいまいち・・知識がたらず・・すみません
206 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:53:08 ] C:\MixIDE-1.4rc6>java -jar MixIDE.jar Exception in thread "main" java.lang.UnsupportedClassVersionError: mix/ide/MixID E (Unsupported major.minor version 50.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source)
207 名前:206 [2008/05/17(土) 14:57:03 ] 間違って、送信してしまったorz javaのプログラムをコンパイルしたいのですが・・・ mixide.sourceforge.net/ mixideというプログラムです jar形式で配布されてるので、それをcmdで実行すると C:\MixIDE-1.4rc6>java -jar MixIDE.jar Exception in thread "main" java.lang.UnsupportedClassVersionError: mix/ide/MixID E (Unsupported major.minor version 50.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) となってしまいます・・・アドバイスください
208 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:59:46 ] gameRenderの dbImage = createImage(WIDTH,HEIGHT); 以降で自身にaddされたコンポーネントを自分で描画する
209 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 15:07:57 ] >>201 Keymap 使って、VK_UP や VK_DOWN に何もしない Action を結び付けてみるとか。 TextAction noaction = new TextAction("noaction") { public void actionPerformed(ActionEvent e){} }; textarea.getKeymap().addActionForKeyStroke(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0), noaction);
210 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 15:08:49 ] >>204 本当ありがとう、processKeyEventメソッドを オーバライドしてやったら上手くいったよ 昨日1日奮闘してダメだったことを30分で解決してくれるとは、、 もっと精進せねば
211 名前:201 mailto:sage [2008/05/17(土) 15:15:27 ] >>209 Keymapなんて使ったことなかったので勉強になります この方法でも上手くいきました。ありがとうございます
212 名前:186 [2008/05/17(土) 15:41:54 ] >>208 なるほどなるほど。 画面に描画するときに一緒に描画するんですね ボタンのようなコンポーネントの描画に関してちょっと知識不足です ぱねるにaddすればはりつけられることはわかっているのですが 一緒に描画というところがまだわかりません 自分で調べてみますが、よろしかったらご教授お願いします!
213 名前:180 [2008/05/17(土) 15:50:16 ] >>182 ,185 質問に答えていただいてありがとうございます。
214 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:13:01 ] 以下のプログラムで「booleanの結果を戻す必要があります」と コンパイルエラーがでるんですが、なぜでしょうか?? returnでbooleanを返してるんですが??? tryの外からbooleanを返すとうまくいくのですが、何故なのか理由がよくわかりません。 public boolean DBDelete(int formVal[]) { try { Connection con = getConnection(); Statement smt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE); ResultSet rs = smt.executeQuery("SELECT * from kyuuyo WHERE 社員番号="+formVal[1]); if (rs.next()) { if (rs.getInt("社員番号")==formVal[1]) { rs.deleteRow(); return true; } else { System.out.println("該当する社員番号がありません"); return false; } } } catch(Exception e) { e.printStackTrace(); } }
215 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:21:52 ] >>214 全てのケースにおいて return するか例外投げるかしないとダメ。 具体的には rs.next() が true にならないケースと、 catch(Exception e) で例外捕捉したケースが漏れてる。 booleanの結果を戻すか、例外投げる必要がある。
216 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:31:00 ] >>214 SQLインジェクション
217 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:41:21 ] KeyMapを使うのと、InputMap + ActionMapを使うのはどっちがいいんだろ。 KeyStroke a = KeyStroke.getKeyStroke("ctrl A"); for (InputMap im = t.getInputMap(); im != null; im = im.getParent()) { im.remove(a); } とか。
218 名前:214 mailto:sage [2008/05/17(土) 16:44:04 ] >>215 あ、catchにもreturn書かないといけないんですね なるほど!ありがとうございました!!
219 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 17:05:30 ] >>218 それはそれでマズイ
220 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 17:07:28 ] >>218 if (rs.next()) { } //ここじゃね?
221 名前:214 mailto:sage [2008/05/17(土) 17:40:53 ] >>218 マズいんでしょうか???
222 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 18:00:52 ] 例外の握りつぶしでググレ
223 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 18:08:45 ] >>180 List list = new ArrayList(); は、List としての機能が必要だが、インスタンスを生成するには具象クラスが必要なので とりあえずArrayList を使ったということ。 すなわち、それ以降は単に List の機能が必要なだけという、 プログラムの書き手から読み手への強い意思表示が含まれている。 これを、半端な知識のマと言ってしまうと、書き手は哀れw
224 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 18:44:13 ] >>223 無駄に短いスコープで抽象化するのは俺も反対だな そもそもListに関して言えば、何も考えずにgetListとか作る方が問題となるわけで。
225 名前:186 [2008/05/17(土) 19:10:01 ] >>186 のコードのものです gameRenderの dbImage = createImage(WIDTH,HEIGHT); 以降で自身にaddされたコンポーネントを自分で描画する とアドバイスをいただいたのですが、まだ理解できずボタンが隠れてしまします gameRender内でaddで追加してもだめでした。 どなたかご教授お願いします
226 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 19:20:40 ] 最初に具象クラスで書いておいて 「お、ここ、List で十分じゃん」と書き換えるのは抽象化って感じだけど、 List でロジック組んでみたけど、その List のインスタンスも生成しなくちゃならない というような場合は、むしろ具象化って呼ぶのが適当じゃね? (そもそも、はなっから List でなく ArrayList で考えるような場合がどれだけあるのだろうか) そのような場合、生成部分は仕方ないけどそれ以外を わざわざ List から ArrayList へ置き換えてやる必要があるのかどうか。 いくらスコープが狭くても面倒だし
227 名前:デフォルトの名無しさん [2008/05/17(土) 19:21:18 ] eqlipseのページからEMF build 2.2.0が落とせない どこか落とせるところ無いですか?
228 名前:227 [2008/05/17(土) 19:36:02 ] お騒がせしました、できました。
229 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 19:43:14 ] button.paint(dbg)
230 名前:186 [2008/05/17(土) 19:47:52 ] >>229 できました! 感激です! スキです!
231 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:01:14 ] rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/252.java これをコンパイルしようとすると終盤でFigureTypeが見つけられないとでてしまいます どこを修正・追加すればコンパイル可能になるでしょうか?
232 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:06:42 ] >>226 むしろ最初からListではなくArrayListで考えれば充分で、Listとして考える必要もないような気がする。 >生成部分は仕方ないけどそれ以外をわざわざ List から ArrayList へ置き換えてやる 宣言と初期化は普通は同時に行うわけで、書き換える必要もないと思うけど?
233 名前:186 [2008/05/17(土) 20:13:31 ] >>229 ボタン表示ができたのですが、ボタンとしての機能がなくなっていました! コンストラクタでボタンをADDで貼り付けて、別スレッドでpaintで描画した結果、 addで貼り付けたボタンは結局うしろにいって、paintで描画したボタン(ボタンとしての機能なし) が画面はじにでるだけでした! こういうものなのでしょうか?
234 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:57:46 ] そりゃ下のコンポーネントにボタン置いてその上のコンポーネントにボタンのグラフィック描画しただけだから クリックしたイベントが伝達されてないだけだと思う。 設計が悪い。
235 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:01:08 ] ボタンが押されたら押された状態を描画すればいい バッファイメージを自分で作るってのはそういう事だよ。 ゲームなんだよね? JButton使わずにパネル上のマウス位置とマウスイベントを拾ってボタンは画像にしたらどうだろう。
236 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:05:05 ] >>232 それは順序が逆だ。使う側が必要とするのは本来はListという概念を実現している何かであって、その実現手段は知ったこっちゃない。 しかし、Listの実体を生成するためには、具体的なモノを明示的に指定する必要があって、諸々の取捨選択の結果としてArrayListを用いることになるわけだ。 だから、ListでなくArrayListを型として用いるということは、利用側が必要としているのは「Listを実現した何か」ではなく「ArrayListという実装」である、という意志の表明になる。
237 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:06:41 ] >>232 まあ、どうでもいいんだけど 例えば、本来、ローカル変数で十分なところに(ループのイテレータとか)フィールドを割り当ててて、 「できることが多いからいいじゃないか」 「クラスの外からは隠蔽されているからいいじゃないか」 「最初からフィールド変数で考えれば十分じゃないか」 と言われるくらい気持ち悪い(※) ましてや、これを、 「イテレータにフィールド変数を使わないのは、半端な知識がマが書いた云々」 とか非難され始めたら、ちょっと一言いいたくなる。 (※)それぞれ、以下から脳内変換 「ArrayList は List よりメソッドが多いからいいじゃないか」 「外向けのメソッドをつくる場合に、List にすればいいじゃないか」 「最初から ArrayList で考えれば十分じゃないか」 >>生成部分は仕方ないけどそれ以外をわざわざ List から ArrayList へ置き換えてやる >宣言と初期化は普通は同時に行うわけで、書き換える必要もないと思うけど? 考えてみれば、仮引数とかに使うとかしなければ、そうそう必要ないねぇ。 でも、まあ、人間の頭の中では List を操作しているつもりなのに、 プログラムの中では操作している変数は ArrayList である という剥離は気持ち悪い。プログラムは、人間が読むためのドキュメントであるべきなのだから。
238 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 21:45:36 ] >>236 その理論でいくならば、すべてのクラスにおいて具体的なモノとインターフェイスは別々に考えなければならないともとれる。 現実ではListとして考える≒ArrayList、諸所の取捨選択なんてほとんどない。 メソッド内とかクラス内で閉じるものに対して、「使う側」を意識するんか? 実体をつくるのも使うのも自分だろ。 そりゃ外部とのインターフェイスとしてはListが望ましいけどね。
239 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:24:21 ] まあどっちでもいいと思うのは確か Listでも構わんし、ArrayListでも気持ち悪くもない。 >232も必要がないとしか言ってないわけでどっちでもいい的立場なんじゃね?
240 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:26:57 ] >>238 > その理論でいくならば、すべてのクラスにおいて具体的なモノとインターフェイスは別々に考えなければならないともとれる。 ある意味yes. 実装レベルでclassとinterfaceに分離するか否かは、モノの性質、作業工数、管理工数などを考慮して決めるけど。 あと、「使う側」って言うのは「List/ArrayListを使用しているコード」のこと。 それから、「表明」する主語は「コードを書いた人」で、「表明」している先は「そのコードを読むモノ(人だけじゃなくコンパイラも含む)」のこと。 つまり、List でなく ArrayList と書いたなら、そのソースコードを書いた人はそれを読むモノに対して、「ここでは (List ではなく) ArrayList である必要があるのだ」と主張しているのに等しい。
241 名前:177 mailto:sage [2008/05/17(土) 22:46:21 ] >>181 確かに詳細にいくだけならプライマリキーを渡せばいいのですが、 詳細からまた一覧に戻ってくる際に同じ条件で検索する必要があるので一覧画面が受け取ったパラメータをまるまる渡してやらなければいかんのです… ユーザインターフェスはformとボタンを使用する事を考えています。 コードとしては <table> <% while(ResultSet.next()){ %> <tr><td>-----テーブル内容-----</td><td><form action="URL" method="POST"><--hiddonいっぱいとsubmit--></form></tr> <% } %> というのが思いついてはいるのですが、それだと生成されるレコードごとにhiddonがたくさん書き込まれてしまうなぁと思いまして…bottunタグにパラメータを埋め込めたら便利なんだけどなぁと思っているのですが…
242 名前:177 mailto:sage [2008/05/17(土) 22:47:30 ] hiddenのスペル間違えてる…お恥ずかしい…
243 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 22:54:05 ] >>241 行ごとにformを作るな、ページに1つでいいだろ どこまでも検索条件を持ちまわすのか? 検索条件が増えたとき困らないか? なんでもセッションに値を突っ込むのは奨励されないが、2画面以上遷移して値を保持しなければならない場合、セッションに積んだ方がいい。
244 名前:デフォルトの名無しさん [2008/05/17(土) 23:04:57 ] Webサービスのライブラリって、axis2とJAX-WSのどっちがお勧め? axis2は今動かして(クライアントだけだけど)とりあえず動いた。 JAX-WSはJDK落とすのがかったるいのでまだ試してないw ttp://homepage2.nifty.com/igat/igapyon/diary/2008/ig080116.html の「いろいろ問題」ってーのは具体的にどのあたりなんでしょ?
245 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:09:08 ] List と ArrayList だとわかりにくいかもしれないけど、 Map と Hashmap では、体感しやすい経験があった。 最初のソース: マスタ取得部品みたいなクラスがあって、 Hashmap map = new Hashmap(); で定義されていて、この map オブジェクトを外部からさわれるようになっている。 当然、呼び側からは Hashmap 型でアクセスしていた。 後日、Map の一覧をソートされた状態で表示する必要が発生し、Treemap に変えたくなった。 けれども呼び側では、すべて Hashmap にしているため、呼び側を、結局 Map で 取得するよう、すべて書き換えた。 部品側は、Map map = new Treemap(); にしておしまい。 こういうことがあると、呼び出し側ではインターフェースで取得すべきと思うようになった。 List においても、後日データ量が増えた、チューニングの問題で、ArrayList から LinkedList に変えたくなった ときに、呼び出し側は List にしておけば、部品側だけの修正ですむと思うのだけど。
246 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:09:29 ] いがぴょんに聞けば良いじゃん。 ま、現状だと資料とか実装例とか豊富なaxis2でいいと思う。 チャレンジャーならばJAX-WS使ってみれば?
247 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:12:59 ] >245 問題は「当然、呼び側からは HashMap 型でアクセスしていた」ところ
248 名前:244 [2008/05/17(土) 23:19:44 ] >>246 おお、もうお返事がw 了解、さしあたりaxis2でもう少し掘り下げてみる。 いや、axis(1)のような、Wikipediaにまで載ってる明らかなダメがあるのかと思ってねw >JAX-WS ttp://ja.wikipedia.org/wiki/Apache_Axis
249 名前:245 mailto:sage [2008/05/17(土) 23:20:49 ] >>247 その部品は、以下のようなメソッドが外部向けに定義されていた。 public Hashmap getMasterMap() { } たしかにこのままでも、呼び側は Map map = HogeUtil.getMasterMap(); すればよかったんだけど、Javadoc に返却値の型が Hashmap と書かれていたので、 みんな Hashmap 型で取得していたよ。
250 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:25:23 ] ちげーよw × public HashMap getMasterMap() { } ○ public Map getMasterMap() { } あとHashMapだよ、Hashmapはないわ
251 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:27:28 ] >>244 xfire ( xfire.codehaus.org/ ) あるいは、後継の CXF ( cxf.apache.org/ ) はどうだい? xfire は使ってたけど、POJO を WebService 化するのがすごく楽だった。 (コード修正なし、xml 書くだけ) まぁいまどきのデファクトという意味では、Axis2 でしょう。
252 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:37:28 ] >>243 ページに一つでformにしたいんですが、複数のSubmitを作ったら全部のHiddenを渡してしまうのが…というのが悩みでして。 submitを押したときに特定のパラメータを渡す動作をsubmitの中に書ければいいのですが… 検索条件は検索結果と詳細の間だけで持ちまわす物です。