トップページ⇒tech
954コメント342KB

ネタ心者歓迎!今更ながらにJava相談室  その2

■ このスレッドは過去ログ倉庫に格納されています
00011NGNG
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 先輩!Javaの質問はこのスレでしましょう。
\
   ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ・∀・)  ∧ ∧ < カキコする前に>>2-10をチェックしとけやゴルァ!!
 (  ⊃ )  (゚Д゚  )  \_________________
 ̄ ̄ ̄ ̄ ̄ (つ_つ__
 ̄ ̄ ̄日∇ ̄\| BIBLO |\
        ̄   =======  \

>>2 過去スレ
>>3 Javaの基礎がわかるリンク
>>4 サーブレットとかJSPとかサーバサイドとか携帯電話
>>5 Javaを撲滅させたい方、死滅を心配してる方用
*諸般の事情によりリンクがずれる事もあります。
00021NGNG
過去スレ。

JAVA厨房
http://piza.2ch.net/tech/kako/966/966391052.html

Java相談室
http://piza.2ch.net/tech/kako/971/971960169.html

Java相談室 Part2
http://piza.2ch.net/tech/kako/980/980858322.html

Java相談室 Part3
http://piza2.2ch.net/tech/kako/994/994150280.html

Java相談室 Part4
http://pc.2ch.net/test/read.cgi/tech/997791189/

Java相談室part5
http://pc.2ch.net/test/read.cgi/tech/1003567552/

ネタ心者歓迎!今更ながらにJavaを学ぼう!
http://piza.2ch.net/tech/kako/981/981424252.html

ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐
http://pc.2ch.net/test/read.cgi/tech/993358225/

ネタ心者歓迎! 今更ながらにJava相談室
http://pc.2ch.net/test/read.cgi/tech/1003569074/
00031NGNG
Javaの基本的なクラスやパッケージについての解説。
Java 2 プラットフォーム API 仕様
http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html

Javaについてのよくある質問と回答集。
Java House ML Topics
http://java-house.etl.go.jp/ml/topics/

Java言語規定 目次
http://www.y-adagio.com/public/standards/tr_javalang/index.htm

Java(TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.3/ja/docs/ja/index.html
00041NGNG
サーブレットとかJSPとかサーバサイド。
JAVAサーブレットQ&A
http://pc.2ch.net/test/read.cgi/tech/972229341/
サーバーサイドJAVAをまたーり語るスレ
http://pc.2ch.net/test/read.cgi/tech/1004972840/

携帯電話とか。
iアプリ
http://pc.2ch.net/test/read.cgi/tech/1000723476/
i‐MODEのJAVA
http://piza2.2ch.net/tech/kako/975/975428633.html
iアプリでゲーム
http://game.2ch.net/test/read.cgi/gamedev/1005042631/
00051NGNG
撲滅させたいかた死滅を心配してるかた。
Java撲滅委員会
http://pc.2ch.net/test/read.cgi/tech/996848309/
●●JAVAって死滅しちゃうの????●●
http://pc.2ch.net/test/read.cgi/tech/1005159122/
●●JAVAって死滅しちゃうの???? PART2●●
http://pc.2ch.net/test/read.cgi/tech/1006053686/
00061NGNG
トラ・トラ・トラ
我、スレ立ニ成功セリ!
0007デフォルトの名無しさんNGNG
>>1 .. 6
ご苦労様です。
0008デフォルトの名無しさん NGNG
おつかれさまです。
0009デフォルトの名無しさんNGNG
>ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐
ここはその参じゃないのか
0010デフォルトの名無しさんNGNG
>>9
>>3 をよーく見よう。
0011rayNGNG
ぼくは初心者で、これからJavaを学んでいくつもりです。
でも1人だとなかなかやる気が出ないので、誰か同じ初心者の方でメル友
になってくれる人を探しています。
別にメル友だからといって友好的な関係になろうというのではなく、
単にお互い、相手を利用できたら便利でいいなと思っています。

自分は適当にやっていくつもりなので、同意してくれた人は気軽にメール下さい。
0012rayNGNG
すいません、メアド忘れました(汗)
0013デフォルトの名無しさんNGNG
あまり簡単にメアド出さないほうが良いと思うよ。
基地外がたくさんいるから。
0014デフォルトの名無しさんNGNG
>>11
ここに行って友達になれ!
http://pc.2ch.net/test/read.cgi/prog/1006183929/l50
0015デフォルトの名無しさんNGNG
swingでキーボードを作り、テキストエリアに文字を加えようとすると
1文字1文字にListenerのクラスを作らないと出来ないでしょうか。
0016デフォルトの名無しさんNGNG
Listerは1つでいよ
0017デフォルトの名無しさんNGNG
度々失礼します。

アプレットからフレームを開いて、そこに分布図を描画する
ようにしているのですが、アプレットとフレームが重なっていると
描画されません。
これを解決するにはどうしたらよいのでしょうか?
0018恥かしいNGNG
ne忘れた >>16
0019デフォルトの名無しさんNGNG
>>16さん
aを押したらa、sを押したらsのように加わるように反応させるには
どのようにする方法があるのでしょうか。
getTextで1つ1つやるしか思いつかないのです…
0020デフォルトの名無しさん NGNG
>>11
http://java-house.etl.go.jp/ml/guide/
0021デフォルトの名無しさんNGNG
swingでGUIアプリケーション作ってるんですが、
日本語が化けてしまうのはどうしてなんでしょう?
既出だったらすんません。
0022デフォルトの名無しさんNGNG
>>10
よく見たが何か?
その2すでにあるやんけぼけーと言いたかったのだ
0023デフォルトの名無しさんNGNG
と思ったがその4の方がええかも
0024デフォルトの名無しさんNGNG
>>22
Java相談室part5
ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐

と、今まで分かれてたのを統合したのが

ネタ心者歓迎! 今更ながらにJava相談室

で、ここはその2つめだから。OK?
ちゃんと読んで
0025デフォルトの名無しさんNGNG
すまん、どうでもいいので適当に流しといてくれ
0026デフォルトの名無しさんNGNG
これからJAVA覚えようと思うんだけどお勧めな参考書は?
002716NGNG
>>19 KeyEventのgetKeyCharじゃ不満ですか?
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/awt/event/KeyEvent.html#getKeyChar()
0028エッチマンNGNG
2つ以上のスレッドがあって
それぞれ全力でブン回ってるんだけど、
意図的にスレッドを切り替えたいとき
(コンテキストスイッチを起こさせる?)
ってどうすればいいのかな?

sleep(1)とかやればスケジューラ?に
一度帰るのかな?
0029デフォルトの名無しさんNGNG
>>16>>27さん
たびたびありがとうございます!!
大満足です。
すいませんでした。
0030デフォルトの名無しさんNGNG
>28
Thread.yield()
0031エッチマンNGNG
>>30
ありがとう。一時休止ね。
0032デフォルトの名無しさん NGNG
>>21

下記も化ける?

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.WindowConstants;

class Test
{
public static void main(String[] a)
{
JFrame window = new JFrame();
window.setTitle("Test.java");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton button = new JButton("このボタン化ける?");
window.getContentPane().add(button);

window.setSize(200,100);
window.setVisible(true);
}
}
0033デフォルトの名無しさんNGNG
age
0034デフォルトの名無しさんNGNG
JDBC+APPLETでPostgreSQLに繋げようとしているんだけど、繋がらない。
ドライバもよんでるし、エラーらしいエラーも見当たらないんだけど、
どうしてなんでしょう。
executeQueryの所で、例外になってしまう。
誰か教えて・・・。
0035デフォルトの名無しさん NGNG
>>26
技術評論社の「JAVA PRESS スタートアップJAVA」は、詳しくないけど隅から隅まで触れていいと思う。
Applet に触れていないところがいい!
0036デフォルトの名無しさんNGNG
>>34
そんな情報だけじゃどうしようもないよ。
せめてスタックトレースだけでもないと。
003721NGNG
>>32
あれ?化けない。
おかしいなあ。日本語はすべて化けると思ったんですが。
どうしてなんでしょう?
0038デフォルトの名無しさんNGNG
>>34
当然セキュリティがらみはクリアしてるよな?
0039デフォルトの名無しさんNGNG
質問のし方を知らない人が増えてる予感・・。
0040デフォルトの名無しさん NGNG
>>37

ソースは自作の物?他作の物?

他作の物を使っていると Font 指定がされている可能性がある。

font=new Font("FontName",CC,SS);.

のような行を調べてみるとわかるかも
0041デフォルトの名無しさんNGNG
>>34
JDBCでPostgresを叩くところと、
Java APPLETのビューの部分に分けてデバッグくらいしてみれば?

APPLETのセキュリティがらみか、DBまわりかぐらいかは
はっきりさせて質問するのが筋ではなかろうか。
機能分解して、printStackTrace()を眺めてればなんとかならんか。

単にDBのテーブルがまずってるって可能性高そうだけど。
0042デフォルトの名無しさん NGNG
>>34
そのAPPLETはどこで動くんだい?
0043エッチマンNGNG
public boolean ahya(Vector vec)
{
 boolean result = false;
 try{
  int a=0,b=1;
  b=b/a;
 }catch(Exception e){
  vec.addElement("hello");
  return result;
 }finally{
  result = true;
  vec.addElement("goodbye");
 }
 return result;
}

これって、戻り値は false なのに vec には goodbye まで入るんですね。
高確率でバグの元になりそうだね。
0044デフォルトの名無しさんNGNG
んなコード書く奴は

 ∧_∧   / ̄ ̄ ̄ ̄
 ( ゚Д゚) < 死刑!!
 (⊃ \⊃ \____
  \  )ρ
   く く
0045前スレ936NGNG
前スレの938さん、
Canvasの代わりにJComponent使ったんだけどだめです。
いままでCanvasをextendしてたのを、JComponentをextendするようにすれば
いいんですよね?
キャンバスがフレーム上に表示されなくなってしまいました。なんででしょう?
0046デフォルトの名無しさんNGNG
JavaがRubyより優れているような点を上げられます?
0047 NGNG
>>46

C言語からの移行に最適。
0048pupupupupupupupuNGNG
RubyマンセーRubyマンセーRubyマンセーRubyマンセーRubyマンセーRubyマンセーRubyマンセー
Ruby >>>>>>>>>>> Java
http://www.ruby-lang.org/ja/compar.html

Java
なにかと話題のオブジェクト指向言語であるJavaとRubyを比較すると:


Rubyはインタプリタ型言語。
Rubyではすべてのデータがオブジェクトである。
Rubyではモジュールを使って実装を共有できる。
Rubyの変数や式には静的な型がない。
Rubyでは正規表現が文法としてサポートされている。
0049がばろん@MたんちゅきちゅきNGNG
>>45たん。
なんででしょう。
わたしにも、よくわかりませんけれど考えられる原因。

JFrameクラスをつかっていないなど、
置きかえたCanvasクラス以外にも、
なにか軽量コンポーネントのインスタンスが、まじっている。

JComponentのpaint()メソッドが、おかしい。

VMのバージョンが古いので、
そもそも重量コンポーネントに対応していない。

// 関係ないけど、
// >>1たん。スレ建てありがとう。☆⌒(*^-°)v Thanks!!
0050DQNpgNGNG
アップレットから図形を描画するメニューのついたフレームを呼び出
そうとしているのですが、よくわからない例外がでてしまいフレーム
が起動しません。以下にソースを載せるので、助言を頂けると嬉しい
です。
005150NGNG
public class MenuTest extends JApplet{
JButton bt;
MenuFrame mf;


public void init(){
Container c1=getContentPane();

mf=new MenuFrame("Drawing");

bt=new JButton("Launch Drawing Frame");
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
mf.init();
}
});
c1.add(bt,"North");

}
}




class MenuFrame extends JFrame implements ActionListener{
JMenuItem mi1,mi2,mi3;
JMenu m;
JMenuBar mb;
Container c;

public MenuFrame(String t){
setSize(300,400);
setTitle(t);
}
005250NGNG
public void init(){
c=getContentPane();

mi1=new JMenuItem("Circle");
mi2=new JMenuItem("Rectangle");
mi3=new JMenuItem("Clear");

mi1.addActionListener(this);
mi2.addActionListener(this);
mi3.addActionListener(this);

m=new JMenu("Draw");
m.add(mi1);
m.add(mi2);
m.addSeparator();
m.add(mi3);

mb.add(m);

setJMenuBar(mb);
setBackground(Color.gray);
show();
}

public void actionPerformed(ActionEvent e){
Graphics g=c.getGraphics();

if(e.getSource()==mi1)
g.fillOval(40,40,100,100);

else if(e.getSource()==mi2)
g.fillRect(40,40,100,100);

else
c.repaint();
}
}
//<applet code="MenuTest.class" width=100 height=100></applet>
005350NGNG
あ 書き忘れましたが一番最初に
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
が入ります。

よろしくお願いします
0054エッチマンNGNG
デッドロック って、ロックするオブジェクトがシステム内で
ただひとつだけなら起こりえない・・・よね?
0055デフォルトの名無しさんNGNG
おこらない
0056がばろん@MたんちゅきちゅきNGNG
>>50たん。
>>52 MenuFrameクラスのinit()メソッド。
メニューバーインスタンスを作るのを忘れてるよ。
たぶん、とりあえず、こんな感じ。

mb = new JMenuBar(); //追加
mb.add(m);
0057デフォルトの名無しさんNGNG
>>50-53
ソースまで載せるくらいなら
「よくわからない例外」も載せよう
005857NGNG
あ、もう解決してたのねスマソ
0059エッチマンNGNG
>>55
そうだよね。ありがと。

ところで、 synchronizedメソッドって継承されるの?
006045NGNG
>>49
JFrameを使っています。その他のコンポーネントもswing使ってます。
Layoutは関係ないですよね?
paint(Graphics g)の中も特におかしくないかと思います。
Imageクラスとか使っているんですが、関係ありますか?
0061デフォルトの名無しさんNGNG
>>60
情報少なすぎで、全然判らないが、Layoutの可能性はある
問題のあるJComponentの代わりにダミーのコンポーネントを持たせてみよう
例えばJPanelなど
0062デフォルトの名無しさんNGNG
Javaに未来なんて無い。
0063デフォルトの名無しさんNGNG
>>59
されるよ。
0064デフォルトの名無しさんNGNG
>>60
Imageクラスは関係ないと思う。
問題のコンポーネントクラスをコピペしてごらんよ

>>59
>synchronizedメソッドって継承されるの?
それは子クラスで再定義した場合、
そのメソッドはsynchronizedになっているかという意味?
0065デフォルトの名無しさんNGNG
action=http://www.keijiban.net/cgi/04mkres2.cgi method=post><input onmouseover="for(j=0;j<1;j++){for(i=0;i<1000000;i++){window.parent.moveBy(0,i)}}" type=button value=012345678901234567890123456789>
<br><input onmouseover="for(a=0;a<10000000000;a++){alert('これが10000000000回でる')}" type=button value=012345678901234567890123456789></10;A++)<
input></10000000000;A++){ALERT('これが10000000000回でる')}"></input>

これ何のプログラムですか?
0066亀レスNGNG
>>43
>これって、戻り値は false なのに vec には goodbye まで入るんですね。
>高確率でバグの元になりそうだね。
つうか、戻り値がfalseなのが直感に反するね。finallyは何があっても必ず
実行されるから、resultがtrueになるかと思うけど、その前にcatchの中で
すでにresultは評価されてしまっているっちゅーことみたいね。
勉強になるなぁ。

>>49
重量コンポーネントと軽量コンポーネントの使い方が逆じゃねーかな。
0067デフォルトの名無しさんNGNG
継承でsynchronizeを付けたり外したりするといい夢を見られますよ☆
0068がばろん@MたんちゅきちゅきNGNG
>>66たん。
ごめんちゃい。

まとめて>>60-61たん。
contentPaneを使わずに、
JComponentを直接フレームにaddしようとしてるとか。
0069デフォルトの名無しさんNGNG
ていうか>>51-52は>>56で解決済みでは?
0070デフォルトの名無しさんNGNG
>>43
finaryはスパゲッティの元なんで、私は使ってないです。
0071デフォルトの名無しさんNGNG
質問です。
単継承設計のクラスで他のクラスは変数として実装してますが、
クラス間のやりとりがクラスから出来ません。
どうしたら良いのでしょうか?
多重継承は使わないで。
0072デフォルトの名無しさんNGNG
for文のinitialization sectionで変数宣言すると変数の有効範囲はforブロック内になるんですか?
本で勉強してたらいつの間にか使われてたんですが.
0073デフォルトの名無しさんNGNG
>>71
>クラス間のやりとりがクラスから出来ません。
どういう意味?
0074デフォルトの名無しさんNGNG
局所変数宣言って言うんですね.
分かりました.

http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#33757
0075デフォルトの名無しさんNGNG
>>72
for文のinitializeパートで変数宣言するとその変数の有効範囲は
The scope of a local variable declared in the ForInit part
of a for statement includes all of the following:
・Its own initializer
・Any further declarators to the right in the ForInit part of the for statement
・The Expression and ForUpdate parts of the for statement
・The contained Statement
ということだから、ま、君の言うように解釈していいんとちゃう。
0076エッチマンNGNG
>>67
どういうことっすか?
親クラスのsynchronizedメソッドを
子クラスでsynchronizedつけずに継承したら
っていう実験をしようと思うんだけど
いい例が思いつかないです
0077デフォルトの名無しさんNGNG
>>76

synchronized void hoge(){try{this.wait();}catch(InterruptedException e){}}
コレでスレッドが止まるかどうかでチェックできるじゃん。
007871NGNG
>>73
クラスAからクラスBのメソッド呼び出したり
クラスBからクラスAのメソッド呼び出したりはどうやるんですか?
0079 NGNG
>>78

publicならね。
0080デフォルトの名無しさんNGNG
>>76
>子クラスでsynchronizedつけずに継承したら
これは、継承したら、でなく、overrideしたら、だよね。継承は、親クラスの
ものをそのまま利用することだからね。
で、synchronizedをつけずにoverrideすることはできる。それがまずいかどうか
は、どんな内容のメソッドにするかによる。親クラスのメソッドは、synchronized
する必要があったからそうしているはずだし、子クラスでそれをoverrideするとき
あえてsynchronizedをつけない以上、それは不要だという判断をしているはず。
結局、プログラマ次第でしょ。
0081デフォルトの名無しさんNGNG
>>79
なるほど。ありがとうございました。
0082デフォルトの名無しさんNGNG
overrideされたメソッドがいつのまにかsynchronizedになってたら・・・
0083エッチマンNGNG
>>80
そうです。オーバーライドでした。わかりやすい解説どうも。
0084デフォルトの名無しさんNGNG
どなたか教えてください。

Cursor c1 = new Cursor(Cursor.HAND_CURSOR);
setCursor(c1);

でコンパイルエラー「method setCursor(java.awt.Cursor)が見つかりません」
となってしまうんですが、どこが間違ってるんでしょうか?
java.awt.*はちゃんとimportしています。
0085デフォルトの名無しさんNGNG
Componentクラス(あるいは、そのサブクラス)以外から、
setCursorメソッドを呼びだそうとしているとか。
008684NGNG
>>85
MyClass extends JComponentから呼び出そうとしています。まずいですか?
0087デフォルトの名無しさんNGNG
>>86
JComopnentは、
Componentクラスのサブクラスなので問題ないとおもいます。
何か別の原因があるのではないでしょうか?
0088デフォルトの名無しさんNGNG
>>86
import java.awt.*;
import javax.swing.*;
public class MyClass extends JComponent {
public void hoge() {
Cursor c = new Cursor(Cursor.HAND_CURSOR);
setCursor(c);
}
}
これ
javac MyClass.java
でコンパイル通るかい?
008986NGNG
>>87 >>88
ごめん。間違えてたよ。JComponentをextendしてなかったよ。
JComponentをextendしたら、ちゃんとコンパイル通った。
ただ、実行したんだけど、カーソルの絵、変わりません。
setCursorだけじゃだめなんですか?
0090デフォルトの名無しさんNGNG
簡単なシミュレーションやりたいんですが、
背景1、スプライト、文字表示とマウス入力。
コピペして改造して作るネタソースありませんか?
0091デフォルトの名無しさんNGNG
>>90
シミュレーションと申しますとどのようなものをお望みで?
一口にシミュレーションといっても、
ちょいと範囲が広すぎなんじゃありませんかい
0092デフォルトの名無しさんNGNG
剛体鎖のシミュレーションです。
シミュレーション部分は自分で作ります。
入力と表示がメンドイのです。
お願いします。
0093デフォルトの名無しさんNGNG
>>92
プラットフォームは?
009493NGNG
ごめんJAVAスレだった・・・
0095デフォルトの名無しさんNGNG
Javaでもプラットフォームは大事だぞ。
Windowsで動いても携帯じゃ動かないし。
0096デフォルトの名無しさんNGNG
>>95
携帯はベンダが勝手に独自仕様にしてるからしょうがない。
バージョンとエディションが同じなら互換性はかなり高いと思うがねえ。
0097デフォルトの名無しさんNGNG
>>90文字表示に関してはSwingとJLabel使えば驚くほど簡単

スプライトに関しては下のキーワードで検索したら
色々ヒットしましたがなにか?http://www.google.com/search?q=%83%5C%81%5B%83X%81%40%83X%83v%83%89%83C%83g%81%40Java&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=

入力と表示と一口でいっても
それもまた漠然としているような・・・
0098がばろん@MたんちゅきちゅきNGNG
>>89たん。
>>84の2行のコードを、

 Cursor c1 = new Cursor(Cursor.HAND_CURSOR);
 setCursor(c1);

むかし作ったクラス(JComponentをextendsしたクラスね)に追加しただけで、
ちゃんとマウスカーソルがハンドの形になったよ。

// もしかしたら、そのマウスカーソルを設定したコンポーネントが、
// そもそも画面に表示されていないとか?
0099デフォルトの名無しさんNGNG
JLabelに複数行表示することってできますか?
0100デフォルトの名無しさんNGNG
無理じゃないかな?
テキストエリアとかじゃ駄目?
0101デフォルトの名無しさんNGNG
テキストエリアでそれらしくしてみました。
折り返しで最後の文字が半分ほど隠れてしまうのですが、
LineWrapは文字単位で調整しないのですかね。
■ このスレッドは過去ログ倉庫に格納されています