【初心者】Java質問・相談スレッド126【歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/05/13(水) 03:26:33JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド125【歓迎】
http://pc12.2ch.net/test/read.cgi/tech/1239708057/
次スレは>>990あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
0002デフォルトの名無しさん
2009/05/13(水) 03:26:53■ AWT と Swing は --
Java低速GUI Swing 8
ttp://pc11.2ch.net/test/read.cgi/tech/1227234261/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part19
http://pc11.2ch.net/test/read.cgi/tech/1233822965/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/l50
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 67 ★★
http://pc11.2ch.net/test/read.cgi/tech/1232627790/l50
**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/
0003デフォルトの名無しさん
2009/05/13(水) 16:55:36public void run(){
for(int count1=0;count1<100;count1++){
System.out.println("カウンター1:"+count1);
try{
Thread.sleep(1000);
}
catch(InterruptedException e){}
}
}
public static void main(String arg[]){
counter counter1=new counter();
counter1.start();
}
}
これにカウンター1と同じように1.5秒毎に出力するカウンター2を追加したいんだけどどうしたらいいのか分からん
誰か教えてくれないか?
0004デフォルトの名無しさん
2009/05/13(水) 17:14:40private final name;
private final time;
public counter(String name,int time){
this.name = name;
this.time = time;
}
public void run(){
for(int count1=0;count1<100;count1++){
System.out.println(this.name+count1);
try{
Thread.sleep(this.time)
}
catch(InterruptedException e){}
}
}
public static void main(String arg[]){
counter counter1=new counter("カウンタ1",1000);
counter counter2=new counter("カウンタ2",1500);
counter1.start();
counter2.start();
}
}
00054
2009/05/13(水) 17:17:12private final String name;
private final int time;
0006デフォルトの名無しさん
2009/05/13(水) 17:32:31ありがとう
0007デフォルトの名無しさん
2009/05/13(水) 17:32:32FileChannel.MapMode.PRIVATE
を使う意味ってある?
バッファ内のデータは操作できるけど、
マップ対象の物理ファイルには何ら反映できないんでしょ?
ファイル側に影響無しでテストなんかをしたい場合用?
0008デフォルトの名無しさん
2009/05/13(水) 17:32:56開発環境はNetbeans6.5.1
同パッケージ(パッケージ名:csample)の中に
二つ(Menu.java,Kojin.java)がぶち込んであり
DBが一つ用意されていると仮定して
Menu.javaからString型変数であるStxt1をKojin.javaに引っ張ってくる方法で躓いてます。
その引っ張ってきた変数をSQLに入れて発行したい。
SQLでそのままの変数ならば'" + jtxtf1111 + "'でいけるけど
それでそのSQLを発行してデータベースのデータを引っ張ってきてそれぞれのjTextFieldに配置したい。
とりあえずMain.javaの方のソースはこんな感じ
ttp://balsamic.fam.cx/up-insalata/download/1242203446.rar
[DLKEY]java
で御願いします。
むーずーかーしーいー
0009デフォルトの名無しさん
2009/05/13(水) 17:57:360010デフォルトの名無しさん
2009/05/13(水) 20:29:24ブチ殺されるだろ。
0011デフォルトの名無しさん
2009/05/13(水) 20:56:440012デフォルトの名無しさん
2009/05/13(水) 21:13:43トランザクションが有効にならないんじゃなかったっけ?
バージョンわからんし、まあそもそもサンプルなんだろうけど。
つーか、無闇にフィールドをpublicにしないで、privateにしてgetter/setterを作ろうぜ。
jLabel1.setTextの最初の空文字は何ぞや?文字列連結として扱わずに、素直にparseしよう。
DB繋ぎっぱなのは……例外の捕捉は……まあサンプルか……。
0013デフォルトの名無しさん
2009/05/13(水) 21:39:33どうすればいいでしょうか。
項目は日付と売上金額です。
0014デフォルトの名無しさん
2009/05/13(水) 21:54:12そーゆーライブラリを拾う/買う。
Java2Dで自力描画。
0015デフォルトの名無しさん
2009/05/13(水) 22:13:350016前スレ991
2009/05/13(水) 22:42:00ありがとうございます。
0017デフォルトの名無しさん
2009/05/14(木) 06:36:47漏れは、shapeでちまちま描こうと思ってる。
ググって見つけた良さそうなライブラリ付きのチャートアプリ。
Venice
ttp://mov.sourceforge.net/
00188
2009/05/14(木) 10:01:28あ いやそれは一応考えてある。
ifとelseでmatchesと正規表現使って判別しようかなって。
>>11
確かにそうなんだけど スタンドアロンだしいいかなっていう糞適当な考え
だめなのかな?
>>12
Server version: 5.0.77-comunity-nt MySQL Community Edition
ちなみにそれは仕様なの?それともバグか何か?
一応俺も調べてみることにする有難う
ちなみにサンプルをかき集めて自分で作ってみた。
むやみにPublicにするなって誰かにも言われた覚えが少しある。
クラス分けしてる意味がなくなるとかとか。
おとなしくParseにしとく。
あとDB繋ぎっぱなしだとだめなのか・・・
そのたびそのたびにcon.close();でやって
尚且つどっかでfinalize使ってsuper呼んで閉じて・・ってやるのか・・・。
で 結局変数の持ち越し方がわからなんだ(´;ω;`)
0020デフォルトの名無しさん
2009/05/14(木) 10:18:54最低限として、jakarta-commons-lang/StringEscapeUtils#escapeSql()
とか、PreparedStatementあたりを使っておけばよいのでは?
00218
2009/05/14(木) 11:07:18PreparedStatementでもインジェクション対策になるんだ
参考になります。有難う。
どのみち速度向上の問題もありあそうだし
PreparedStatement使ってみる。
0022デフォルトの名無しさん
2009/05/14(木) 11:09:54本当にお遊びレベルで書いているならともかく、
このレベルだったら慣れのためにも常に意識するべき
せっかくオブジェクト指向言語を学んでいるんだから、
完全に覚えろとは言わないけれど、
そういう考えがあるという事実を認識しておいた方がいい
ConnectionやStatement、ResultSetのcloseはfinallyで行えばいい
自分でDB接続関連の汎用クラスを作ってみると勉強にもなるよ
00238
2009/05/14(木) 11:20:42ふむ。
まずカプセル化の概念から探してみるかなぁ。
有難う。
あ finalizeじゃないfinallyだ
てことは、毎回はcloseしないでいい訳ね。
mainでDBに接続させるのと最初のコンストラクタのところでDBに接続させるのって
どっちがいいんだろ。
いまんところはKojin(){}の中とかに書いちゃってるけど。
あれ これってコンストラクタであってたっけ?_?;
だっはー javaやって1ヶ月くらいになるけどぜんぜん覚えられない
0024デフォルトの名無しさん
2009/05/14(木) 11:27:26素のJDBCでのコーディングは勉強になるけど、
なんとなく掴めてきたら、
jakartaのDbUtils使うといいかも。
JDBC直接よりは解りやすくコード量も少なめで、
O/Rマッピングツール使うよりはシンプル。
情報源やサンプルコードも、ググればたんまりと出てくる。
00258
2009/05/14(木) 12:31:31なんていうかお前らすごす
おかげで色々と進みそうな予感がしてきた。
あくまで予感だけな予感だけ。
とりあえずJDBC関連の事とかもあさってみる。
正直昨日パッケージ変えてライブラリにMySQLドライバ入れ忘れてて
一人で発狂してたくらいだから。
はー頑張ろう
0026デフォルトの名無しさん
2009/05/14(木) 16:21:33private int num;
private double gas;
public void setNumGas(int n,double g)
{ if(g>0 && g <1000){
num = n;
gas = g;
System.out.println("ナンバーを"+ num +"にガソリン量を"+ gas +"にしました。");
}else{
System.out.println(g+"は正しいガソリン量ではありません。");
System.out.println("ガソリン量を変更できませんでした。");}}
public void show(){
System.out.println("車のナンバーは"+ num +"です。");
System.out.println("ガソリン量は"+ gas +"です。");}}
class Sample1{
public static void main(String args[]){
Car car1 = new Car();
car1.setNumGas(1234,20.5);
car1.show();
System.out.println("正しくないガソリン量(-10.0)を指定してみます・・・。");
car1.setNumGas(1234,-10.0);
car1.show();
} }
これ private を外してコンパイルしても何も変わらないんだけど privateがあるとないじゃどー違うの?
00278
2009/05/14(木) 16:26:43Private String jtxtf;
で定義して
jtxt = jTextField1.getText();で取得
public String getJtxtf1() {
return jtxtf;
}
を配置
Kojin.javaで
Menu mMenu = new Menu();
String jtxtf1 = mMenu.getJtxtf();
んで
sqlStr = "select * from member where mid = '" + jtxtf1 + "'";
これだとぬるぽ出るんだが。
Menu.javaのどっか間違えてんのかなぁ。
ちなみにそのjtxtfにぶち込むメソッドはボタン押されたら呼ばれる様になってるんだ。
ヒントがあったら頂けると助かります。
0028デフォルトの名無しさん
2009/05/14(木) 16:47:44public Object get();
}
public class B<T> implements A{
public T get(){...}
}
これって OK なんだな。
0030デフォルトの名無しさん
2009/05/14(木) 16:52:50教科書を一冊読んでから出直すレベル
00318
2009/05/14(木) 16:58:37swingだけの本読むべきか・・・。
ネットだけで って訳にはいかないのかなやっぱり。
とりあえず本探してみるよ ありがとう。
0032デフォルトの名無しさん
2009/05/14(木) 17:03:090033デフォルトの名無しさん
2009/05/14(木) 17:07:57いや独り言
00348
2009/05/14(木) 17:09:04デバッグしてみた。
Kojinに入った時点で呼び出してるんだけど
DB接続前にブレークポイント置いてとめてみた。
そしたら既にnullだった。
Menu.javaの方で一応jtxtfも見てみたんだけど
ぜんぜん普通に値が入ってた。
だから豆が飛んでないのかな。と。
それでさっきからg−gr先生と対話中。
0035デフォルトの名無しさん
2009/05/14(木) 17:13:17だとしたらボタン押した時にテキストフィールドから値を取る動作
>jtxt = jTextField1.getText();
が動いてないんじゃねw
0036デフォルトの名無しさん
2009/05/14(木) 17:15:12つーことは、Menuのjtxtに値が入る前にgetJtxtf1()呼んでるんだろ
00378
2009/05/14(木) 17:16:08勘違い詰んだ
>>35
おっとすまん
Error: java.sql.SQLException: Illegal operation on empty result set.Illegal operation on empty result set.
そうだエラー書き忘れてたo...rz
0038デフォルトの名無しさん
2009/05/14(木) 17:17:57それはぬるぽとはいわねーw
00398
2009/05/14(木) 17:24:22書き込みってそんな時間食うの・・?
一応こんなメソッドを呼び出してる。
private void mdisplay() {
jtxtf = jTextField1.getText();
if(jtextf.getText().matches("[0-9]+")){
new Kojin().setVisible(true);
}
んでKojin.javaのドライバ読み込む直前で
Menu mMenu = new Menu();
String jtxtf1 = mMenu.getJtxtf();
これしてる。 もしかして読み込みが間に合ってないのか
いやそんなことないか? うーん。
00408
2009/05/14(木) 17:26:51すまんww
今気づいた 値見てたらnullになってたからぬるぽぬるぽと思い込んでた
これリザルトセットのとこがおかしーぞこらって言われてるのかな。
でもsql発行のところの・・・
ん?
sqlStr = "select * from member where mid = '" + jtxtf1 + "'";//変数で宣言?_?
//SQL文実行
rs = stmt.executeQuery(sqlStr);
こいつかもしかして
0041デフォルトの名無しさん
2009/05/14(木) 17:39:14エラー情報に何行目でエラーでたか書いてあるだろ
>rs = stmt.executeQuery(sqlStr);
これの更に後ろだろたぶん
0042デフォルトの名無しさん
2009/05/14(木) 17:45:430044デフォルトの名無しさん
2009/05/14(木) 18:08:14例えば、
// ドライバクラスをロード
Class.forName("org.gjt.mm.mysql.Driver");
// データベースへ接続
String url = "jdbc:mysql:///itemdb?useUnicode=true&characterEncoding=SJIS";
Connection con = DriverManager.getConnection(url);
・・・後はステートメントオブジェクトを生成して、クエリー実行・・・・
で、読んだりしますけど、DB作成からの場合は、接続するDBがありませんよね?
そのときの書き方を教えてください。
SQLは”CREATE DATABASE itemdb” ですよね?
00458
2009/05/14(木) 18:14:03#ちょっと記述ミスしてた所(rsの抜き出しのところ)直したら先ほどのエラーは消えた。
だけど今度はガチでぬるぽ先生がお出ましになった。
見た感じやっぱりgetterで取れてないっぽい。
Error: java.lang.NullPointerExceptionnull
0046デフォルトの名無しさん
2009/05/14(木) 18:22:54ぬるぽはコーディングミスだからね。
戻り値はちゃんとnullチェックをしましょう。
0047デフォルトの名無しさん
2009/05/14(木) 18:29:34privateを外すと同じパッケージ内ならアクセス出来る様になる
privateが一番キツいアクセス修飾子だから外しただけなら制限が緩くなるだけで
エラーの発生要因にはならない
逆に制限を強めるとエラーが起きる可能性が出てくる
00488
2009/05/14(木) 18:36:33でした。
Main.java側のString jtxtf;をprivateとかpublicとかにしてたものの
staticにしたらいけました^o^;
staticはカプセル化の上で絶対なので?
確かそのクラスに属する・・とかって感じだった様な気がします。
0049デフォルトの名無しさん
2009/05/14(木) 18:56:04普通はセキュリティや物理配置、ポートの割り当てやらプロセスの立ち上げやらの環境構築が
必要なので DB のインスタンス自体をアプリケーションから作成するようなことはしない。
一旦別の DB に接続して CREATE DATABASE を発行して再接続すれば希望は叶うかもしれないが、
インスタンスが 1 つも無い時は JDBC ではどうしようもない。どうしてもと言うなら MySQL
固有のライブラリが用意されていないか調べるしかない。
0050デフォルトの名無しさん
2009/05/14(木) 18:59:390051デフォルトの名無しさん
2009/05/14(木) 19:02:46ないをあるに変えてみた。こうか?
普通はセキュリティや物理配置、ポートの割り当てやらプロセスの立ち上げやらの環境構築が
必要なので DB のインスタンス自体をアプリケーションから作成するようなことはしないアル。
一旦別の DB に接続して CREATE DATABASE を発行して再接続すれば希望は叶うかもしれないアルが、
インスタンスが 1 つも無いアル時は JDBC ではどうしようもないアル。どうしてもと言うなら MySQL
固有のライブラリが用意されていないアルか調べるしかないアルよ。
0053デフォルトの名無しさん
2009/05/14(木) 19:14:30ワロタw
0054デフォルトの名無しさん
2009/05/14(木) 20:31:53class nicyan{
String name;
nicyan makeClone(){
nicyan cl;
try{
cl = (nicyan)this.clone();
System.out.println(cl.name);(**)
return cl;
}
catch(Exception e){
}
}
}
}
0055つづき
2009/05/14(木) 20:33:56nicyan[] n = new nicyan[4];
n[0].name = "giko";
n[2].name = "monar";
n[3].name = "itteyoshi";
n[1] = (nicyan)n[0].clone();(*)
n[3] = n[2].makeClone();
System.out.println(n[3].name);(***)
}
というコードで
1,(*)で「clone()はprotectedアクセスされます」って言われるんですが
protectedって修飾子なしより制限緩いはずなのにどうしてですか?
(javaのapiの普通のメソッドはこんな事言われませんよね)
2,(*)をコメントアウトして実行した時の話ですが
(**)で出力された名前を見るとmonarでn[3]はn[2]のクローンになってるのに
なぜ(***)の出力はitteyoshiのままなのですか?
0056デフォルトの名無しさん
2009/05/14(木) 20:39:21パッケージ外から呼べるのはpublic
0057デフォルトの名無しさん
2009/05/14(木) 20:47:55ttp://www.tohoho-web.com/java/modifier.htm
修飾子なしとprotectedは別物(後者のほうが制限緩い)
ように見えますけど。
0058デフォルトの名無しさん
2009/05/14(木) 20:56:48勘弁してくれ
protectedはサブクラスから参照できるが、無指定は参照できん
0059デフォルトの名無しさん
2009/05/14(木) 21:37:25前世紀にJavaHouse-Brewersで見かけた表現だから今でも通用するかは不知。
0060デフォルトの名無しさん
2009/05/14(木) 21:49:10デフォルトアクセスと訳されている。
私はパッケージプライベートと覚えた気がする。
0061デフォルトの名無しさん
2009/05/14(木) 22:25:01(*)の行でprotectedアクセスされます
っていうのは、n[0].clone()がhogeクラス内から呼ばれたものだから。
clone()はprotectedメソッドだから、nicyanオブジェクトであるnに対して
clone()を呼ぶときは、nichyanクラス「内」からしか呼べない。
つまり、this.clone()あるいは単にclone()という使い方しか出来ない。
0062デフォルトの名無しさん
2009/05/14(木) 22:30:51追記。
super.clone()も可。
ただし、nicyanクラスでclone()をオーバーライドしてないので、
super.clone()とthis.clone()とclone()は全て同じ意味になる。
0063デフォルトの名無しさん
2009/05/14(木) 22:35:260064デフォルトの名無しさん
2009/05/14(木) 23:18:31サブクラスでパッケージは関係なくできる。
サブパッケージでもサブクラスじゃなければ出来ない。
0065デフォルトの名無しさん
2009/05/15(金) 08:29:21その月の最大日数を取得して
日を表すJComboBoxの項目を作成するプログラムを作成しているのですが
うまくいきません。
ActionListenerを作成しその中で
cbDay.removeAllItems();
cbDay.addItem(・・・・);
とするとエラーが出てしまいますがこの方法はまずいですか?
0066デフォルトの名無しさん
2009/05/15(金) 10:00:39判らない所は?で示す様になるんだけど そこをどういう風に表示させるか分かりません。
あくまで予想だけど
sqlStr = "select * from t_member where ? = ?"
みたいな感じになると思うから 違ってたら教えて下さい
0067デフォルトの名無しさん
2009/05/15(金) 10:33:02何度も言われていることだが、
なんのエラーが出たのかを書け。
0068デフォルトの名無しさん
2009/05/15(金) 10:34:02なんでやってみてから質問しないの?
0069デフォルトの名無しさん
2009/05/15(金) 10:43:20どうすればいいんだ?
MySQLと違ってjava側でnullで送ったら致命的エラーが出て終わるんだが。
insert into timber (member_id) values (null)
今ここ
0070デフォルトの名無しさん
2009/05/15(金) 12:08:41なにか問題でも?
0071デフォルトの名無しさん
2009/05/15(金) 12:30:51失礼しました。
ぬるぽです。
・・・・・
import java.util.*;
class calendarTest implements ActionListener{
protected JFrame frame1;
protected JComboBox cbY, cbM, cbD;
calendarTest(){ {
Calendar cal = Calendar.getInstance();
//省略
//日の表示
cbD = new JComboBox();
for(int i = 1; i <= cal.getActualMaximum(Calendar.DAY_OF_MONTH); i++){
cbD.addItem(i);
}
cbD.setSelectedIndex(cal.get(Calendar.DAY_OF_MONTH) -1);
//省略
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==cbM){
cbD.removeAllItems();
}
}
public static void main(String args[]){
new calendarTest();
}
}
0072デフォルトの名無しさん
2009/05/15(金) 13:02:05いや別に何も無いよ。やってみればすぐわかることだろうに。
0073デフォルトの名無しさん
2009/05/15(金) 13:58:45残念ながら、ぬるぽはコーディングミスです。
出所不明な変数はnullチェックをしましょう。
特定の引数にnullが含まれるとぬるぽを返す仕様のメソッドもあります。
0074デフォルトの名無しさん
2009/05/15(金) 14:02:15問題ないように見えるんだけど。
cbD.removeAllItems();
のところでデバッガ止めてみたりした?
気になったんで調べたら
http://forums.sun.com/thread.jspa?threadID=542445
ってのが見つかった。解決方法も書いてあった。
0075デフォルトの名無しさん
2009/05/15(金) 14:26:25失礼しました。
解決しました。お手数かけました。
0076デフォルトの名無しさん
2009/05/15(金) 14:28:30いろいろ調べてみたのですが、どうも分かりにくいのばかりで・・・
0077デフォルトの名無しさん
2009/05/15(金) 14:57:01そんなことってあったりする?_?
0078デフォルトの名無しさん
2009/05/15(金) 15:28:54SWINGがawtに比べて何が便利なのかわかりません。
awtのほうがプログラムが見やすいのですけど、如何なものでしょうか
0079デフォルトの名無しさん
2009/05/15(金) 15:45:46AWTはGUIがプラットフォームで異なるのが大きい
利便性というよりは共通化の観点が大きいんじゃなかったっけ
0080デフォルトの名無しさん
2009/05/15(金) 15:57:20コンテナとか使ってなかったらそう感じるかもね。
Swingではawtのほとんどを使い回せるから、別にメリットを感じないならawtのままでいいんじゃない?
0081デフォルトの名無しさん
2009/05/15(金) 15:58:140082デフォルトの名無しさん
2009/05/15(金) 16:10:13試さずに書くかよ。
それでもnull吐き出続けるから俺の書式がおかしいのか
もしくはその概念自体を間違えてるのか確かめたくてね。
0083デフォルトの名無しさん
2009/05/15(金) 16:22:34たとえば、
layout.jsp
---------------
<html>
<body>
<%= yield %>
</body>
</html>
---------------
nantoka.jsp
---------------
<h1>Hello ${user}</h1>
---------------
とあったら、layout.jsp の <%= yield %> のところに nantoka.jsp の結果が差し込まれてくれる、というかんじの機能です。
0084sssssssssss
2009/05/15(金) 16:40:52ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=1326202453
0085デフォルトの名無しさん
2009/05/15(金) 16:42:130086デフォルトの名無しさん
2009/05/15(金) 16:43:20どこでヌルポってんだよw
例外キャッチしてスタックトレースはかせれば行番号ぐらいでねえか?
0087デフォルトの名無しさん
2009/05/15(金) 16:55:25少しググれば例が使ってない例があるんだから、そういうこと言われるんだろう?
0088デフォルトの名無しさん
2009/05/15(金) 16:56:27これ、答え書いてなかったか?
0089デフォルトの名無しさん
2009/05/15(金) 16:56:44中身は空で、とにかくサイズだけはあるファイルを
作成するのに良い方法ありますか?
今は、FileオブジェクトにOutputStream系を使って
無意味なbyteデータをループ回して
延々書き込んでるんですが。
0090sssssssssss
2009/05/15(金) 16:57:58本当ですか?
0091デフォルトの名無しさん
2009/05/15(金) 17:06:370092デフォルトの名無しさん
2009/05/15(金) 17:12:34ファイルの中身が何でもいいなら
RandomAccessFile raf = new RandomAccessFile(filename, "rw");
raf.setLength(length);
raf.close();
0x00で埋められてなきゃいかんなら延々書き込むしかない。
延々書き込む際に FileChannel と ByteBuffer#allocateDirect()
使ったほうがちょっとだけ早いかもしんない。
Windows 限定でいいなら
Runtime.exec("fsutil file createnew " + filename + " " + length)
とかでもいいけど。
0093sssssssssss
2009/05/15(金) 17:14:23もしかして前スレ945で回答した人ですか??
0094デフォルトの名無しさん
2009/05/15(金) 17:16:320095デフォルトの名無しさん
2009/05/15(金) 17:23:150096デフォルトの名無しさん
2009/05/15(金) 17:26:33FileChooserのボタンだけを戻すとかできないのかな。
個々に設定するのはbindのtype使ってやればいいとして
Dialogもそうすればいいとして・・・
chooserどうやってやるんだああああちくしょうおおおおおお
0097デフォルトの名無しさん
2009/05/15(金) 17:27:09もう回答ついてるじゃん。よかったな。
0098デフォルトの名無しさん
2009/05/15(金) 17:27:12ありがとうございます。
自分でもググってみて、FileChannelとMappedByteBuffer使ってもできました。
たとえば、512MBの空ファイルを作る場合は、
RandomAccessFileから取得したFileChannelを使って、
MappedByteBuffer buf = ch.map(FileChannel.MapMode.READ_WRITE, 1024 * 1024 * 512, 0);
で可能でした。
RandomAccessFile#setLength()でも可能なんですね。
そちらも試してみます。
0099sssssssssss
2009/05/15(金) 17:51:34よかったおー
0100デフォルトの名無しさん
2009/05/15(金) 18:17:09//WorkPanelクラス
for(Object ob: files)
{
//画像縮小+ImagePanel上に配置
imagePanel = new ImagePanel((File)ob, ImageList.size());
WorkPanel.this.add(imagePanel);
WorkPanel.this.window.repaint();
}
//Windowクラス
workPanel = new WorkPanel(this)
JScrollPane scrollPane = new JScrollPane(workPanel);
scrollPane.setPreferredSize(new Dimension(this.getWidth(), this.getHeight()));
this.getContentPane().add(scrollPane, BorderLayout.CENTER);
何故なのでしょうか。よろしくお願いします。
0101デフォルトの名無しさん
2009/05/15(金) 18:27:21ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=1026206395
自分の無知さに笑いが出るw
0102デフォルトの名無しさん
2009/05/15(金) 18:38:45フレームのサイズが設定されてないからじゃ?
0103デフォルトの名無しさん
2009/05/15(金) 18:47:12JListはコンテンツペインを経由していないです
コンテンツペインを経由するしないの判断は、どこにあるのでしょうか。
0104デフォルトの名無しさん
2009/05/15(金) 20:15:53「nullという値」を突っ込もうとしてるからじゃね?
autoincrement属性の付いてるフィールドに値を入れようとした場合、その値が優先されるはず。
で、not nullか何かが付いててエラーになってるんでは。
autoincrement属性の付いてるフィールド「以外」のフィールドにだけ値を入れてみたらどうなる?
0105デフォルトの名無しさん
2009/05/15(金) 20:45:45out.println(htmlConstant.html);
out.println(htmlConstant.head);
out.println(htmlConstant.title);
out.println(htmlConstant.css);
out.println(htmlConstant.head_e);
out.println(htmlConstant.body);
out.println(htmlConstant.Hello);
out.println(htmlConstant.body_e);
out.println(htmlConstant.html_e);
こんな感じで記述していて、Helloは問題なく出力されます。
が、cssが反映されない。
Servletに遷移する前のhtmlだとcssは反映されてます。
out.println(htmlConstant.css);の中は
public final static String css = "<link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\">";
こうなってます。
htmlからServletに遷移してるわけだから階層変わってるのかなぁと思ってcssをclassesの下とかに
置いてみたりしたけど何も変わりませんでした。
0106デフォルトの名無しさん
2009/05/15(金) 21:16:04public Window()
{
super();
this.setSize(500, 800);
フレーム・・・こういう事でしょうか。
0107デフォルトの名無しさん
2009/05/15(金) 21:19:28それによって出力されたHTML文のソース自体は確認した?
0108デフォルトの名無しさん
2009/05/16(土) 00:11:44private JButton selectAllButton = null;
public TestSwing() {
this.selectAllButton = new JButton("全選択");
this.selectAllButton.setEnabled(true);
this.selectAllButton.addActionListener(new SelectAllActionHandler());
add(selectAllButton, BorderLayout.WEST);
private class SelectAllActionHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
Thread selectAllThread = new SelectAllThread(true);
selectAllThread.start();
}
}
private class SelectAllThread extends Thread {
public SelectAllThread() {}
public void run() {
selectAllButton.setEnabled(false); // ★
// do hoge
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// do hogehoge
}
});
}
}
}
}
このようなコードがあったとして、★の位置でselectAllButtonを指定する際、thisのキーワードは使えませんが、
一般的に内部クラスから大元のインスタンス変数を参照する際にはキーワードは何も付けないものなのでしょうか?
0109デフォルトの名無しさん
2009/05/16(土) 00:21:57俺はよくフィールドで
private TestSwing testSwing = this;
みたいにしちゃうんだけど邪道なのかな
0110デフォルトの名無しさん
2009/05/16(土) 00:42:350111デフォルトの名無しさん
2009/05/16(土) 00:53:41と書けなくもないが長ったらしいので付けない。
0112デフォルトの名無しさん
2009/05/16(土) 01:07:12それの効果は?
thisがあるんだからthis使えばいいんじゃないかなと思うんだけど、
0113デフォルトの名無しさん
2009/05/16(土) 01:24:41完全に内部クラス用になっちゃうけどさ
0114デフォルトの名無しさん
2009/05/16(土) 01:28:24内部クラスっていまいちありがたみがわからないんだけど、
例えばアプレットとかで、一つのclassファイルに納めたいときに、
内部クラスで機能わけとかをするのに使ったりするの?
0115デフォルトの名無しさん
2009/05/16(土) 01:33:330116デフォルトの名無しさん
2009/05/16(土) 01:42:11はい、それは勿論。
Helloも表示されているし、headタグやその他のタグにも以上はありませんでした。
cssの外部呼出しもServlet前の画面では同じ記述で反映されてるため
Servletで出力したhtmlは階層が変わっているのではないかと思ったのですが
解決策が見つかりませんでした。
0117デフォルトの名無しさん
2009/05/16(土) 02:17:02情報が断片的なんでアドバイスしにくいわけだが、
cssのURLをフルパスで書くわけにはいかんの?
これでCSSファイルの位置が悪いのかどうかははっきりする。
0118デフォルトの名無しさん
2009/05/16(土) 02:36:40あ、そっかぁ。
じゃぁ、なおさらわかんなーぃ。。。
だれか教えて下さぃ(>_<☆。
0119デフォルトの名無しさん
2009/05/16(土) 03:00:30http://blogs.wankuma.com/nagise/archive/2007/08/01/88273.aspx
0120デフォルトの名無しさん
2009/05/16(土) 04:17:24かなり基本的な質問で申し訳ないのですが、現在蔓延しているウイルス対策にjavaを切りたいのですが
どうすればいいのでしょうか
ググっても該当項目が出てこないのでこちらで質問させていただきました
ブラウザはIEとLunascape5です
0121デフォルトの名無しさん
2009/05/16(土) 04:27:41【マジレス】超初心者の質問に答えるスレ113【エスパー】
http://pc12.2ch.net/test/read.cgi/win/1241574086/
JavaじゃなくてJavaScriptね
別物
ウィルス名はgumblar.cnね
これも忘れないように
0122デフォルトの名無しさん
2009/05/16(土) 04:38:30該当スレで聞いてきますm(_ _)m
0123デフォルトの名無しさん
2009/05/16(土) 07:03:48http://pc12.2ch.net/test/read.cgi/tech/1227234261/
Java低速GUI Swing 8
0124デフォルトの名無しさん
2009/05/16(土) 10:13:410125デフォルトの名無しさん
2009/05/16(土) 10:39:270126デフォルトの名無しさん
2009/05/16(土) 12:16:540127デフォルトの名無しさん
2009/05/16(土) 15:15:423
33
333
3333
という風に数字を出力したいのですがgが『重複ローカル変数』と言われてしまいます。
どうしたらいいでしょうか
int g = 0;
for(int i=0; i<5; i++){
int f = 3;
int g = (int)(f*Math.pow(10,i)+g);
System.out.println("答え="+g);
}
0128デフォルトの名無しさん
2009/05/16(土) 15:22:590129デフォルトの名無しさん
2009/05/16(土) 15:33:37できました。ありがとうございます。
なぜ、intをつけるとダメなのでしょうか。
教えてクンですいません。
0130デフォルトの名無しさん
2009/05/16(土) 15:36:360131デフォルトの名無しさん
2009/05/16(土) 15:43:54あ、わかりました
こんなことにも答えてもらって、どうもありがとうございます
0132デフォルトの名無しさん
2009/05/16(土) 18:32:41javaの例題やってるけどメインプログラムの上に関数(メソッドっていうんだっけ?)が羅列されてるなぁ
C言語の例題はメインプログラムの下に関数作ってたけど
0133デフォルトの名無しさん
2009/05/16(土) 18:39:070134デフォルトの名無しさん
2009/05/16(土) 20:17:05コンパイルエラーになったりする。
0135デフォルトの名無しさん
2009/05/16(土) 21:05:040136デフォルトの名無しさん
2009/05/16(土) 21:19:54高級アセンブラ的視点で、関数の戻り値のアドレス幅だけは使用
前に知っておく必要があった。
ANSI Cだと、同じく呼び出す前に定義するか、引数型を含めた
プロトタイプを宣言。実際の呼び出し時には引数を含めてチェック。
というところだったかねぇ。
0138デフォルトの名無しさん
2009/05/16(土) 21:31:08だが矛盾もなにもお構いなしで動いてバグになりやすかったから宣言必須になった。
0139デフォルトの名無しさん
2009/05/16(土) 21:31:580140デフォルトの名無しさん
2009/05/16(土) 21:34:380141デフォルトの名無しさん
2009/05/17(日) 00:03:510142デフォルトの名無しさん
2009/05/17(日) 00:06:59クライアント側にコンシューマがいるような。
0143デフォルトの名無しさん
2009/05/17(日) 01:45:550144デフォルトの名無しさん
2009/05/17(日) 03:07:480145デフォルトの名無しさん
2009/05/17(日) 10:49:15CORBAに変更して暗号化するしか無くなるような・・・
0146デフォルトの名無しさん
2009/05/17(日) 12:25:32import java.io.*;
class 01
{
public static void main(String args[]) throws IOException
{
System.out.println("整数と文字を入力してください");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str1 = br.readLine();
String str2 = br.readLine();
int num1 = Integer.parselnt(str2);
System.out.println("最後に入力されたのは"+ num1 +"、最初に入力されたのが"+ str1 +"です");
}
}
0147デフォルトの名無しさん
2009/05/17(日) 12:26:18class 01
0148デフォルトの名無しさん
2009/05/17(日) 13:55:31public class Rpg02 extends Applet implements Runnable{
↑なんですがRpg02が子クラスでAppletが親クラス(スーパー?)なんだよね?
でここには長いから書かないけど上記プログラムの後は
Rpg02がAppletの関数つーかメソッド?を利用してるんだよね
子供が親(スーパークラス)を使うの?
親の下に子供があって子供を関数として呼び出して使うんじゃないのかい?
親 メインプログラム
↓
子 サブプログラム(関数)
現在は↑のような認識なんですが><
0149デフォルトの名無しさん
2009/05/17(日) 14:03:330150デフォルトの名無しさん
2009/05/17(日) 14:05:360151デフォルトの名無しさん
2009/05/17(日) 14:33:21派生クラスとか、ピッコロクラスとか呼べばいい。
0152デフォルトの名無しさん
2009/05/17(日) 15:01:57凄く違う。
サブルーチンと勘違いしてるのかもしれませんが、
他の言語の事は忘れて一からJava用語を覚えた方が良いと思います
0153デフォルトの名無しさん
2009/05/17(日) 16:14:440154デフォルトの名無しさん
2009/05/17(日) 16:58:35とりあえずコマンドプロンプトに
set CLASSPATH=%CLASSPATH%;.
と打ち込めばプログラムを実行できるようになるんですが
コマンドプロンプトを再起動させるとまたset CLASSPATH=%CLASSPATH%;.と
打ち込まないと実行できません・・・
ちなみにコンパイルはできます
jdkのバージョンは1.6.0_13です
0155デフォルトの名無しさん
2009/05/17(日) 16:59:590156デフォルトの名無しさん
2009/05/17(日) 17:00:030157デフォルトの名無しさん
2009/05/17(日) 17:04:36ああ、マイコンピュータのプロパティの、詳細設定の環境変数。
ここで設定しておかないと駄目。
でも今時なら、EclipseかNetBeansという無料の統合開発環境があるから、
そっちを使ったほうがいい。
0158デフォルトの名無しさん
2009/05/17(日) 17:10:26public static void main(String args[]) {
for(int sum=0 , i=1; i<=10; i++) {
sum = sum + i;
System.out.println("n=" + i +" の時 " + sum);
}
}
}
のsum + iのiの部分を2のi乗にしたいのですが
どのように表記すればいいのでしょうか
0159デフォルトの名無しさん
2009/05/17(日) 17:11:580160デフォルトの名無しさん
2009/05/17(日) 17:12:36プログラムこっちでした
public class kadai2 {
public static void main(String args[]) {
int sum=0;
for(int i=1; i<=10; i++) {
sum = sum + i;
}
System.out.println(sum);
}
}
0161デフォルトの名無しさん
2009/05/17(日) 17:13:37> sum = sum + i;
>}
これ答案に書いた時点で減点です。
0162デフォルトの名無しさん
2009/05/17(日) 17:17:21ありがとうございました
0163デフォルトの名無しさん
2009/05/17(日) 17:36:38n個の変数a1,a2,a3,・・・,anにそれぞれ値が入力されている。n個の数値の中で最大の値を変数MAXに最小の値を変数MINに入れるアルゴリズムをPADを用いた反復構造を用いて表せ。
なお,n個の値は-100≦a1,a2,a3,・・・,an≦100の範囲にあるものとする。(最小の値が-100で最大の値が100という意味ではない)
0164デフォルトの名無しさん
2009/05/17(日) 17:41:36テストの成績を管理するプログラムの練習をしています。
TEST[i]というオブジェクトを作り、
名前(name[i])、出席番号(num[i])、国語(jp[i])、数学(mathe[i])、英語(en[i])、社会(so[i])
というそれぞれの配列にデータを入力すると言うプログラムを作っています。
最初に登録したい人数を入力し、オブジェクトやそれぞれの配列を用意、
for(int i=0;i<num.length;i++)で入力させているのですが、
名前 出席番号 国語 数学 英語 社会 の順でデータが入力されているテキストファイルを引数から読み込み
簡単に入力する方法はどうしたらよいでしょうか?
0165デフォルトの名無しさん
2009/05/17(日) 17:46:580166デフォルトの名無しさん
2009/05/17(日) 17:54:42>テキストファイルを引数から読み込み簡単に入力する
パラメータにファイル名を指定して、
読み込んだものを表示するだけなのか?
それとも手で名前やら出席番号やら科目の情報を入力するのか?
「テキストファイルを引数から読み込み」と言っているのに(これが入力になるのでは?)
「簡単に入力する」ってのが意味わからん
0167デフォルトの名無しさん
2009/05/17(日) 17:54:500168デフォルトの名無しさん
2009/05/17(日) 17:54:55BufferedReaderで一行づつ読み込んだStringをsplit()で分割。
でいいのかな?いまいちエスパー気味に回答。
0169デフォルトの名無しさん
2009/05/17(日) 17:59:39ソースコード中でオブジェクトのプロパティを一々設定したりコンストラクタに大量の引数を渡したりしなくても
外部XMLで自動的に設定してくれる、って事?
0170デフォルトの名無しさん
2009/05/17(日) 17:59:41国語の成績までの段階ですが、ソースなどはこちらにアップさせていただきました。
>>167
高専生です
0171デフォルトの名無しさん
2009/05/17(日) 18:15:43BuffredReader = reader = new BufferedReader(FileReader("score.txt"));
String line = "";
while((line=reader.readLine()) == null){
// lineをsplitで区切ってなんやかんやする
}
0172デフォルトの名無しさん
2009/05/17(日) 18:16:170173デフォルトの名無しさん
2009/05/17(日) 18:22:01そう。外部XML「から」自動的に設定してくれる。
0174デフォルトの名無しさん
2009/05/17(日) 19:35:49ObjectOutputStreamで書き込んどけば
操作メソッドつきのデータになるから便利だよね
0175デフォルトの名無しさん
2009/05/17(日) 21:47:38staticの意味も把握してないで、適当に付けたり外したりしてんのか、おまえ
筋金入りのバカだな
>んでKojin.javaのドライバ読み込む直前で
>Menu mMenu = new Menu();
>String jtxtf1 = mMenu.getJtxtf();
>これしてる。 もしかして読み込みが間に合ってないのか
んなわけねーだろ
自分で、既存のinstance無視して、new Menu();してんじゃねぇか
それじゃインスタンス変数がnullなのは当然だろ
0176デフォルトの名無しさん
2009/05/17(日) 23:08:18ColoSpaceについて質問があります。
やりたいことはXYZ色空間での値を、Javaでのデフォルトの色空間に変える(0~255のR,G,B)ことです。
一応それっぽいjavadocの説明を見つけました。↓
public abstract float[] fromCIEXYZ(float[] colorvalue);
CS_CIEXYZ 変換カラースペースにあると考えられるカラー値をこの ColorSpace に変換します。
このメソッドは、International Color Consortium 基準で定義されている相対色度測定を使ってカラー値を変換します。
すなわち、このメソッドがとる XYZ の引数値は CS_CIEXYZ カラースペースの D50 白点を基準にして表示されます。
この表現は、入力カラースペースから CS_CIEXYZ 領域へ、次に出力カラースペースに変換される、2 ステップのカラー変換処理において便利です。
このメソッドが返すカラー値は、色度計で測定するときにメソッドに渡される XYZ 値を生成するカラー値ではありません。
現在 CIE 推奨の計算方法を使った測定値に対応する XYZ 値を計算済みの場合は、その値がこのメソッドに渡される前に D50 相対値に変換する必要があります。詳細については、ICC_ColorSpace の fromCIEXYZ メソッドを参照してください。
いまいち「この ColorSpace に変換します」の、「この」が何を指しているのかわかりません。
個人的には
float[] abc ={X,Y,Z};
float[] abc2;
ColorSpace c= ColorSpace.getInstance(1001);
abc2= c.fromCIEXYZ(abc);
と書いてみました。とりあえず(X,Y,Z)=(1,1,1)を代入してみたところ
abc2の値は(0.9927063,0.9927063,0.9927063)でした。
できてるのかよくわかりません。
教えてください。
0177デフォルトの名無しさん
2009/05/17(日) 23:27:39ここで getInstance に与える引数は ColorSpace.TYPE_RGB ではないだろうか。
1001がその値なのかもしれんが。
そうすると RGB ColorSpace オブジェクトが得られるので、「この」は
RGB ColorSpaceになる。
0178デフォルトの名無しさん
2009/05/17(日) 23:56:460179デフォルトの名無しさん
2009/05/18(月) 00:14:37ありがとうございます「この」の意味は作成したインスタンスのことだったんですね。
1001はCIEXYZでした。
でもCS_RGBは返ってくる値が0〜1みたいです。
0180デフォルトの名無しさん
2009/05/18(月) 00:23:13なくてCS_系じゃないかな?と思った。思っただけ。
0181デフォルトの名無しさん
2009/05/18(月) 02:10:10MidiSystem.write()ではSMF形式でしか保存できないようで
AudioSystem.write()ではSequenceを引数に与えられないようですが・・
0182デフォルトの名無しさん
2009/05/18(月) 07:52:04Chapter13〜15を参照して自分でSynthesizer組むがよい
0184デフォルトの名無しさん
2009/05/18(月) 12:09:07javaからdbにデータを登録しようとするとエラーがでる件。
0185デフォルトの名無しさん
2009/05/18(月) 12:09:58nettobeansを使用してる
0186デフォルトの名無しさん
2009/05/18(月) 12:14:56netbeans
0187デフォルトの名無しさん
2009/05/18(月) 12:27:02ClassNotFoundException
ってかいてあるやん。
MySQLのドライバはほんとにインストールしたの?
0188デフォルトの名無しさん
2009/05/18(月) 12:51:44したよ
0189デフォルトの名無しさん
2009/05/18(月) 13:30:00pathが届いてないとか。
0190デフォルトの名無しさん
2009/05/18(月) 14:04:51初歩的で一番よく有るミスじゃね
0191デフォルトの名無しさん
2009/05/18(月) 14:07:59どこに?
0192デフォルトの名無しさん
2009/05/18(月) 15:50:250193デフォルトの名無しさん
2009/05/18(月) 15:51:500194デフォルトの名無しさん
2009/05/18(月) 17:24:32やったこと
・TYPE = INNODB;
・SET AUTOCOMMIT = 0;
・接続する時についでに
sql = "START TRANSACTION";
pstmt = (PreparedStatement) con.prepareStatement(sql);
pstmt.executeUpdate();
をやってる
・ボタンを押された時だけ
sqlStr = "COMMIT";
pstmt = (PreparedStatement) con.prepareStatement(sqlStr);
pstmt.executeUpdate();
でコミット
・ROLLBACKは明示的に指定していない。
これでjFrameを閉じた時に勝手にROLLBACK前までされてたのがされなくなった。
何かヒント頼む。
Default_Close_OptionはExit_on_closeな。
0195194
2009/05/18(月) 17:33:40トランザクションができない というか
始まってるのか判らない。
それに加えてロールバックが、かからなくてもきゃーだからヒント御願いします。
って事ね。
なぜかそのボタンってのがjButtonなんだが
それを押してない時でもcommitされてるってことは
トランザクションが始まってないか、オートコミットが始まってないかだと思うんだが・・・。
ちなみにset autocommit = 0;ってのは毎回やらないといけない物?
0196デフォルトの名無しさん
2009/05/18(月) 17:56:13rec.getでカラムの値を抜き出すってのでおkなの?
0197デフォルトの名無しさん
2009/05/18(月) 18:00:080198デフォルトの名無しさん
2009/05/18(月) 18:09:18え???
0199デフォルトの名無しさん
2009/05/18(月) 20:58:51つーか、よく見てみろ。
com.mysql.jdbc.Drivercom.mysql.jdbc.Driver になっとる。
com.mysql.jdbc.Driver を二回コピペしちゃっただけ。
0200デフォルトの名無しさん
2009/05/18(月) 21:50:59そんなsqlplus チックな使い方したこと無いからわからないけど
とりあえず java.sql パッケのリファレンスを読むことを勧める。
Connection クラスより
>注: 各文を実行後、デフォルトでは、Connection オブジェクトは自動コミットモードになり、自動的に変更をコミットします。
>setAutoCommit(boolean autoCommit)
> この接続の自動コミットモードを指定された状態に設定します。
>commit()
> 直前のコミット/ロールバック以降に行われた変更をすべて有効とし、この Connection オブジェクトが現在保持するデータベースロックをすべて解除します。
あとpreparedstatement のキャストは要らんでしょ。いいけどさ。
>>196
Jデータと rec って何?何かを伝えようっていう意思ある?
テーブル定義がそこにあるならResultSet からカラム名指定して取得すりゃええし
ないならResultSetMetaData でも使えば?
0201デフォルトの名無しさん
2009/05/18(月) 23:48:51GridBagLayoutを使用しているのですが、罫線(枠線)をつけることは
できるのでしょうか。
グリッドのセルの中にはラベルを入れているのですが、
このラベルにsetborderで枠線をつけてみても、
きれいな形にならずに困っております。
0202デフォルトの名無しさん
2009/05/19(火) 00:01:380203デフォルトの名無しさん
2009/05/19(火) 00:07:27そうですね、失礼しました。
私のやりたいことは、各セル均一にきれいに枠線をつけたいのですが
(Excelのように)、ラベルにsetBorder() をつける形で
実装しようとすると、各セルごとのラベルの幅が異なるため、
均一な枠線になりません。
セルの中にあるラベルにつけるという形ではなくて、
グリッドに枠線を表示させる、という方法はあるのでしょうか
0204デフォルトの名無しさん
2009/05/19(火) 00:19:44ちょっと、
GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(5,5,5,5);
と、してみてくれないか?
くっついているのを不均一と見てたりしないか?
0205デフォルトの名無しさん
2009/05/19(火) 00:21:49というかスプレッドシートみたいなものを使いたいなら JTable を使う。
0206デフォルトの名無しさん
2009/05/19(火) 00:24:33すみません、諸事情がありPCを落とさなくてはならなくなりました。
後日上記のことを試してみます。
ありがとうございました!!
0207デフォルトの名無しさん
2009/05/19(火) 00:35:49すみません、ひとつ確認させていただけますでしょうか
JTableにボタン(JButton)は設置することはできるのでしょうか
ざっと調べてみたのですが、それらしい情報はありませんでした。
コンボボックスをつけることはできるみたいですが。
実は、当方、データグリッドの中にボタンを設置しております。
JTableでもボタンの設置ができるのであれば、そちらに
編集しなおそうと思っております
0208デフォルトの名無しさん
2009/05/19(火) 00:45:45できる。
普通にレンダラとエディタいじれば。
やり方はコンボボックスと一緒だけどさ
0209208
2009/05/19(火) 00:47:17参考
ttp://terai.xrea.jp/Swing/DeleteButtonInCell.html
0210デフォルトの名無しさん
2009/05/19(火) 00:58:42研修か?まさか業務用で組むなんて滅多にないだろうし
(小物ツールとかならともかく)
0211デフォルトの名無しさん
2009/05/19(火) 01:05:250212デフォルトの名無しさん
2009/05/19(火) 02:03:30背景の JPanel とかを黒にして各コンポーネントのマージンを 1px づつ取れば
グリッドが引かれたようには見える。
0213194
2009/05/19(火) 09:18:00ふむ。
別の所で聞いてたんだが、どうもauto_increment属性付きフィールドはロールバック対象外らしい。
ということで似たような物をつけることにするよ
0214デフォルトの名無しさん
2009/05/19(火) 11:50:260215デフォルトの名無しさん
2009/05/19(火) 15:56:12private org.jdesktop.beansbinding.BindingGroup bindingGroup;
45: パッケージ org.jdesktop.beansbinding は存在しません。
bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
64: パッケージ org.jdesktop.beansbinding は存在しません。
org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jPanel1,
org.jdesktop.beansbinding.ELProperty.create("Panel0"), jPanel1, org.jdesktop.beansbinding.BeanProperty.create("name"));
なんぞこれ。プロジェクトごと別のPCに移したらエラーはかれた。
JDKもIDEもバージョン一緒だし。
ライブラリも見たところ同じだし。
何が原因だこれ。
0216デフォルトの名無しさん
2009/05/19(火) 16:16:14org.jdesktop.beansbindingというパッケージがクラスパスの通ったところにあるか確認
移したほうの環境ではライブラリが存在していてもそこにパスを通していない可能性がある
0217デフォルトの名無しさん
2009/05/19(火) 16:31:400218デフォルトの名無しさん
2009/05/19(火) 16:32:590219デフォルトの名無しさん
2009/05/19(火) 17:00:47デスクトップに一応プロジェクト自体はあるんだが
そんでorg,jdesktop.beansbindingもそこにもあるし、Netbeansフォルダ(CのNetbeansフォルダ)にある。
クラスパスはjdkに通してある。
0220デフォルトの名無しさん
2009/05/19(火) 17:47:52java
ランタイムエラーが出てしまいます。
色々考えたのですがわかりませんでした。
皆様の力をお貸しください
よろしくお願いします。
0221デフォルトの名無しさん
2009/05/19(火) 17:49:310222デフォルトの名無しさん
2009/05/19(火) 18:34:49どんなエラーが出るのかを書こうよ。
コンパイルまでしなきゃいかんのは面倒だ。
0223デフォルトの名無しさん
2009/05/19(火) 18:45:19at EditorEvent.actionPerformed(MyEditor.java:153)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:18
49)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
a:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258
)
at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1
000)
0224デフォルトの名無しさん
2009/05/19(火) 18:46:23at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMen
uItemUI.java:1041)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212
)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1766)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
0225デフォルトの名無しさん
2009/05/19(火) 18:51:48簡単なテキストエディタで、copy,paste,cut機能を実装し、それらを実行しようとした時に起こります。
まったく同じサンプルプログラムをコピペって実行するとエラーは出ないので、どこか間違ってると思うのですが。。。
2日間サンプルと見比べたのですが分からなかったので質問させてもらいました。
よろしくお願いします
0226デフォルトの名無しさん
2009/05/19(火) 18:52:57バグの原因すら突き止められないなら諦めろ。
それがお前の実力だ。
ヒントを与えるとしたら片っ端からコメントアウトしてエラーがでない状態にしろ。
そこから少しずつコメントアウトをはずしてエラーが出る部分を突き止めていけ。
ここはデバッグ代行スレじゃないから自分でやれ。
0227デフォルトの名無しさん
2009/05/19(火) 18:54:07MyEditor.javaの153行目でぬるぽって書いてあるのに、
何で調べようとしないんだろうな
JButtonだか何だかを押した時っしょ?
フリーで高機能なデバッガが簡単に手に入る時代だというのに
0228デフォルトの名無しさん
2009/05/19(火) 18:58:39editor.textがnullだからNullPointer
0229デフォルトの名無しさん
2009/05/19(火) 19:01:170230デフォルトの名無しさん
2009/05/19(火) 19:05:06text実装しろよ
0231デフォルトの名無しさん
2009/05/19(火) 19:07:11そこから先が分からなくて。。。
02323D自動生成ダンジョン@ActionScript3.0(1%)
2009/05/19(火) 19:07:16すごい落ちだぞw
0233デフォルトの名無しさん
2009/05/19(火) 19:08:36JTextArea text;
28行目
JTextArea text = new JTextArea();
を確認しろと。
0234デフォルトの名無しさん
2009/05/19(火) 19:10:08ありがとうございます
スレ汚してしまってすいませんでした
0235デフォルトの名無しさん
2009/05/19(火) 19:10:46オチって?
単にtextが空なだけじゃねーの
0236デフォルトの名無しさん
2009/05/19(火) 19:29:48ワロタ
0237デフォルトの名無しさん
2009/05/19(火) 19:51:41JAVA習得する予定です
ご指導ご鞭撻のほどよろしくお願いします
0238デフォルトの名無しさん
2009/05/19(火) 19:55:110239デフォルトの名無しさん
2009/05/19(火) 21:37:120240デフォルトの名無しさん
2009/05/19(火) 22:21:14String型変数 strに移そうとして
str = JComboBox.getSelectedItem();
ってやったら怒られました。
互換性がない型といわれましたが
String型にObjectをキャストする方法あるんですか?
0241デフォルトの名無しさん
2009/05/19(火) 22:23:490242デフォルトの名無しさん
2009/05/19(火) 22:24:560243デフォルトの名無しさん
2009/05/19(火) 22:26:10残念ながらありません。
実装方法の見直しを行って下さい。
0244デフォルトの名無しさん
2009/05/19(火) 22:36:56str = (String)JComboBox.getSelectedItem();
でできました。
これってキャストとはいわないのですか?
無知ですみません。
0245デフォルトの名無しさん
2009/05/19(火) 22:37:58キャストって何だと思ってるんですか?
0246デフォルトの名無しさん
2009/05/19(火) 22:41:550247デフォルトの名無しさん
2009/05/19(火) 22:42:29str = JComboBox.getSelectedItem().toString();
に、すべきじゃないかと思うんだが。
0248デフォルトの名無しさん
2009/05/19(火) 22:53:110249デフォルトの名無しさん
2009/05/19(火) 23:00:28実行したところ
str = (String)JComboBox.getSelectedItem();
の方法だと途中でエラー吐いてきました。
ありがとうございます。
0250デフォルトの名無しさん
2009/05/19(火) 23:22:170251181
2009/05/19(火) 23:27:38ありがとう、標準では出来ないって事ね。
まぁ急ぎじゃないし誰かがつくるかJavaSoundが標準サポートするまで待つか
ありがとう
あれ?ひょっとしてJMFとか使って出来るのか!?もうちょっと調べて見ようかな。
0252デフォルトの名無しさん
2009/05/19(火) 23:39:41str = (String)jComboBox.getSelectedItem();
でいいんでしょ?
0253デフォルトの名無しさん
2009/05/20(水) 00:05:490254デフォルトの名無しさん
2009/05/20(水) 00:07:54だめ
0255デフォルトの名無しさん
2009/05/20(水) 00:09:110256デフォルトの名無しさん
2009/05/20(水) 00:16:200257デフォルトの名無しさん
2009/05/20(水) 00:27:040258デフォルトの名無しさん
2009/05/20(水) 00:33:18最初に
public class rensyu {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
}
}
って出てくるんやけど、これを
class rensyu
{
{
public static void main(String args[]);
}
}
って出るように設定しなおせる?
0259デフォルトの名無しさん
2009/05/20(水) 00:48:57Preferences > Java > Code Style > Code Template
でだいたい設定できるんじゃないかな。
0260デフォルトの名無しさん
2009/05/20(水) 00:56:43出すモン調べるには、食べるモン見るだろ。
0261デフォルトの名無しさん
2009/05/20(水) 01:52:46Stringはオブジェクト型で参照渡しなので
下記のソースは両方ともおはようになると思ってたんですが
tex2がこんばんはと表示されます。
どうしてでしょう・・?
String tex = "こんにちは";
String tex2 = "こんばんは";
tex = tex2;
tex = "おはよう";
System.out.print(tex);
System.out.print(tex2);
0262デフォルトの名無しさん
2009/05/20(水) 02:12:35tex2が"こんばんは"の参照を持つように
初期化されて以来、一度もtex2は
変更されていないじゃないか。
0263デフォルトの名無しさん
2009/05/20(水) 02:16:20String tex = "こんにちは";
// 変数 tex が オブジェクト "こんにちは" を参照
String tex2 = "こんばんは";
// 変数 tex2 がオブジェクト "こんばんは" を参照
tex = tex2;
// 変数 tex が、「変数 tex2が参照しているオブジェクト」(= "こんばんは") を参照
tex = "おはよう";
// 変数 tex がオブジェクト "おはよう" を参照
// tex2はずーーーっと "こんばんは" を参照したまま
参照型の代入は、矢印の付け替えだと思いねぇ。
0265デフォルトの名無しさん
2009/05/20(水) 03:22:03a[2] : 1 a[3] : 2 a[1] : 3 a[4] : 3 a[0] : 4
と表示したいのですが
a[2] : 1 a[3] : 2 a[1] : 3 a[4] : 3 a[1] : 3 a[4] : 3 a[0] : 4
となってしまいます。
ソースは以下の通りです。
int a[] = {4,3,1,2,3};
int b[] = new int[a.length];
for(int i=0; i<a.length; i++)
b[i] = a[i];
Arrays.sort(b);
for(int i=0; i<a.length; i++){
for(int j=0; j<a.length; j++){
if(b[i] == a[j])
System.out.print("a["+ j +"] :" + b[i] + "\t");
}
}
jのループの中にbreak;を入れてみましたが
a[1]a[4]の順で表示されずa[1]a[1]と表示されてしまいます。
ご指摘お願いします。
0266デフォルトの名無しさん
2009/05/20(水) 10:53:06そりゃ
a[] = {4,3,1,2,3}
b[] = {1,2,3,3,4}
を二重ループで比較しているから、b[i]==a[j] が成立するのが
b[2]==a[1]
b[2]==a[4]
b[3]==a[1]
b[3]==a[4]
の四種類になる。
bにはもうaの並び順の情報が無くなってるから、そういう表示をさせたかったら
色々と(無駄な努力を)がんばるしかない。
初めに見つかったインデックスで妥協するなら、
if(b[i] == a[j])
System.out.print("a["+ j +"] :" + b[i] + "\t");
を
if(b[i] == a[j]) {
System.out.print("a["+ j +"] :" + b[i] + "\t");
break;
}
とすれば、a[2] :1 a[3] :2 a[1] :3 a[1] :3 a[0] :4 になる。
0267デフォルトの名無しさん
2009/05/20(水) 11:37:31なんやビルドとかのフォルダごと消えてたみたい。
移しなおしたらせふせふ。
ありがとう
0268デフォルトの名無しさん
2009/05/20(水) 14:03:11が分かりません。
今から乗せるソースはJLabelの場合なのですが、これをJTableにするにはどのようにすればいいのでしょうか?
また、付け加えるところがありましたら教えて下さると助かります。
0269デフォルトの名無しさん
2009/05/20(水) 14:05:06con.close();
pstmt.close();
//クローズ
rs.close();
// 自動的な解除を待たずに直ちに閉じる。
super.finalize();// 念のため、親クラスの finalize() を呼ぶ。
}
private void displayData(){
try {
MainMenu mainMenu = new MainMenu();
sqlStr = mainMenu.getSendsqlstr();
System.out.println(sqlStr);
//ドライバクラスをロードする
Class.forName("com.mysql.jdbc.Driver");//org.gjt.mm.mysql.Driverこっちの可能性もあり
//MySQLに接続
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/cujsystem", "root", "root");
//ステートメント生成
pstmt = (PreparedStatement) con.prepareStatement(sqlStr);
//SQL文実行
rs = pstmt.executeQuery(sqlStr);
rs.first(); // 最初の行に移動
0270デフォルトの名無しさん
2009/05/20(水) 14:06:01jLabel31.setText(rs.getString("member_name"));
jLabel32.setText(rs.getString("member_furigana"));
jLabel33.setText(rs.getString("birth_day"));
jLabel34.setText(rs.getString("sex"));
jLabel36.setText(rs.getString("telephone"));
jLabel37.setText(rs.getString("telephone_2"));
jLabel29.setText(rs.getString("zipcode"));
jLabel38.setText(rs.getString("address"));
jLabel39.setText(rs.getString("address_2"));
jLabel41.setText(rs.getString("douki"));
jLabel40.setText(rs.getString("e_mail"));
jTextArea2.setText(rs.getString("remarks"));
}
catch(Exception ex){
System.out.println("Error:" + ex.toString() + ex.getMessage());
}
}
0271デフォルトの名無しさん
2009/05/20(水) 14:33:03マルチスレッドで共有される前提のクラスの非 final メンバは全部 volatile にすべき?
0272デフォルトの名無しさん
2009/05/20(水) 15:00:520273デフォルトの名無しさん
2009/05/20(水) 15:26:03Z:\desktop\sample>javac -classpath .;speech.jar PowerSpectrum.java
>PowerSpectrum.java:15: speech.MyReadWAV1 にアクセスできません。
>クラスファイル speech.jar(speech/MyReadWAV1.class) は不正です。
>クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。
>削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
> MyReadWAV1 readWAV= new MyReadWAV1( inputFileName );
> ^
>エラー 1 個
>
前まではなんの問題もなくコンパイルできたのですが、今日になっていきなりでてきたんです。
これってどういういみなんでしょうか
0274デフォルトの名無しさん
2009/05/20(水) 15:30:530275デフォルトの名無しさん
2009/05/20(水) 17:15:15ついでにその当日にフォーカスを置いて初期選択がその日になってると尚いいんだが。
0276デフォルトの名無しさん
2009/05/20(水) 17:22:25コード内容自体の話じゃないけど、設計に問題がある。
データベース処理と表示処理は意図的に分けて作ったほうがいい。作るべき。
phase1. データベースからデータを読み出して、どこかに記録
phase2. 記録されたデータを元として、画面表示とかファイル出力
と分けるのが、大き目のプログラム開発での定石。
詳しい理由に関してはMVCモデルとぐぐってもらうとして、そうしておけば
phase2部分だけ質問すればよいから、とりあえず動いている(はず)の
phase1部分にツッコミ入れられることもなかったw
phase2部分はJTableにデータを表示する方法なだけだからAPIとか嫁。
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
0277デフォルトの名無しさん
2009/05/20(水) 17:33:46ちょいエスパーしてみると、自分で「キーボードから」入れるんじゃなくてかな?
ということでAPIのJComboBox#addItem()嫁。
http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/JComboBox.html#addItem(java.lang.Object)
初期選択項目はこっちな。
http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/JComboBox.html#setSelectedIndex(int)
0278デフォルトの名無しさん
2009/05/20(水) 17:36:37setEditable() も嫁。
あとチュートリアルはこっち。
http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html
0279デフォルトの名無しさん
2009/05/20(水) 17:36:46エスパーさせる内容ですまんかった。
要はうん、日付を取得してそれをぶち込むってこと。
かなり回答が的を射ててくれて助かった。
ありがとう
0280デフォルトの名無しさん
2009/05/20(水) 17:52:43マルチスレッドで共有される前提のクラスの非 final メンバは
排他処理してからアクセスする
と覚えておけば間違いない。
volatile ってヤヴァいバグを作りこみそうで怖いわ。ご利用は計画的に。
http://www.y-adagio.com/public/standards/tr_javalang2/classes.doc.html#36930
0281デフォルトの名無しさん
2009/05/20(水) 18:07:45どうやれば、このエラーが無くなるのでしょうか
0282デフォルトの名無しさん
2009/05/20(水) 18:17:08int icjcy = Integer.parseInt(jcy);
jComboBox1.setSelectedIndex(icjcy);
java.lang.IllegalArgumentException: setSelectedIndex: 2009 out of bounds
だ・・・と?
0283デフォルトの名無しさん
2009/05/20(水) 18:17:36超適当に言うと、新しい環境で作ったモノが古い環境で動きませんってこった
ソース次第じゃ警告かエラー出るかもしれんが
0284デフォルトの名無しさん
2009/05/20(水) 18:21:00たぶん speech.jar が 1.5 でコンパイルされている。
JDK1.5をインストールしなきゃだめだべ。
0285282
2009/05/20(水) 18:24:160286デフォルトの名無しさん
2009/05/20(水) 18:48:26アイテムを一個ずつ取り出してインデックスを探すか、アイテムを作りこむ際に
インデックスを覚えておくしかないかな?
選択中と任意の違いはあれども、アイテムから文字列を得るには >247 参照。
0287デフォルトの名無しさん
2009/05/20(水) 18:59:11private volatile int foo;
public void setFoo(int foo){
this.foo = foo;
}
これが
private final Object fooLock = new Object();
private int foo;
public void setFoo(int foo){
synchronized(fooLock){ this.foo = foo; }
}
これと等価と言うことで良いですかね。
単発の変数や参照で原子性が必要なことってあまりないですよね。
0288デフォルトの名無しさん
2009/05/20(水) 19:36:51リストとコンボボックスの項目数は実装上の制限がある
0289デフォルトの名無しさん
2009/05/20(水) 19:41:26ありがとうございます。
とりあえずダウンロードし直してみます
0290デフォルトの名無しさん
2009/05/21(木) 01:21:540291デフォルトの名無しさん
2009/05/21(木) 01:25:020292デフォルトの名無しさん
2009/05/21(木) 01:51:00ありがとう、さっそくインストールしてみるわ
0293デフォルトの名無しさん
2009/05/21(木) 08:32:04起動に四分かかって俺涙目
0294デフォルトの名無しさん
2009/05/21(木) 13:18:17JDK1.4とかで動けば良いなら
3.2入れるとか。
0295282
2009/05/21(木) 16:24:26あれから色々やってみて
jcm = String.valueOf(cal.get(Calendar.MONTH) + 1);
int icjcm = Integer.parseInt(jcm);
int ijcm1 = 0;
for(int count = 0; count <= 11; count++){
jComboBox2.addItem(ijcm1 +=1);
}
jkentxtf1 = jComboBox2.getSelectedItem().toString;
これをすると、例えば今5月だろ?
05月ってする方法がわかんないだ。
SQLで探すのに20090520とかいう形で入るから0をつけたい。
何か方法ある?
0296デフォルトの名無しさん
2009/05/21(木) 17:09:32String#format
0297デフォルトの名無しさん
2009/05/21(木) 18:18:090298デフォルトの名無しさん
2009/05/21(木) 18:31:12ある程度基礎は知ってる。で、15歳からはじめるJAVAゲームプログラミングってやつやり始めたら
中盤当たりからかなり難しくなってきて、もぅただテキストをただ見ながら移して打ちこむ感じに・・・・
理解しながら打ってるけど、どーも自分で考えてやったわけじゃないから受身な感じになって覚えられない。
ある程度自分でプログラムを考えてやらせるようなプログラムの本ないでしょうか。
サイトとかも教えてほしい
0299デフォルトの名無しさん
2009/05/21(木) 18:38:46> ある程度自分でプログラムを考えてやらせるようなプログラムの本ないでしょうか。
> サイトとかも教えてほしい
この時点で自分で考えてないし、受身な感じだと思うよ。
自分で作りたい物を考えて、それを実現する方法を必死に調べるほうが身につくと思う。
テトリスでも作ってみれば?
0300デフォルトの名無しさん
2009/05/21(木) 19:19:45普通言語覚えたいという欲求には、何かをしたいという事が前提だとおもうんだけど
そういうのはないんかなぁ?
0301デフォルトの名無しさん
2009/05/21(木) 21:25:43起動スピードにはあまり関係ないんだけど、ボロノートなら操作全般が・・・
そこで生活の知恵。 Eclipse のインストールフォルダの eclipse.ini を
--launcher.XXMaxPermSize
128m
-framework
plugins\org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx64m
-javaagent:dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
という感じに大胆にメモリ節約すると実メモリ 512MB でも、普通に使えるようになる。
0302デフォルトの名無しさん
2009/05/21(木) 21:29:040303デフォルトの名無しさん
2009/05/21(木) 23:11:12あれはいい本だが内容は入門向けだぞ。
0304デフォルトの名無しさん
2009/05/21(木) 23:27:49hoge.jar というのがwebサバに置いてあったとして、
Javaアプリとしてそれを利用する形なんだけど、
1分間に15回くらいの頻度でwebにhoge.jarアクセスがあるんです。
Javaのverとかブラウザの設定の問題?
それとも他に何か影響してるのかしら・・・・
同じような現象知ってる人いたら情報欲しいです。。
0305デフォルトの名無しさん
2009/05/21(木) 23:44:20イミフ。まあ言ってることからして板違い
0306デフォルトの名無しさん
2009/05/21(木) 23:45:44>>307をいけにえにエスパーを特殊召喚!
ターンエンド。
0307デフォルトの名無しさん
2009/05/22(金) 00:21:20と見ようとしたんだけど、sun.misc.URLClassPath に委譲してる?
ドロー、ワーウルフを召喚。二枚伏せて、ターンエンド。
0308デフォルトの名無しさん
2009/05/22(金) 00:50:31鷲巣麻雀をつくろうとおもってるんだがオブジェクト指向ができない、、、
牌クラス
ルールクラス
(待ちくらす、鳴きクラス、点数計算クラス、役クラス、流局クラス)
プレイヤークラス
(親クラス、子クラス
その他
(配牌クラス、理牌クラス、場所決めクラス、親決めクラス)
間違ってないよね?
0309デフォルトの名無しさん
2009/05/22(金) 01:04:29それ、クラス化って言う名のカテゴライズじゃね?
ゲーム進行クラスどこよ?
それにくっついてくる遷移を直接行うものももしかしたらクラスにするかもしれないし。
簡単なのは動作に関して誰が何の責任を持つ必要があるか?って考えたときにその"動作"はメソッド、責任者はそのメソッドを持つクラス。って感じにクラスを作る。
あとは基礎だがis aとhas a関係をしっかりさせるのもいい。
0310308
2009/05/22(金) 01:33:55動作に関して誰が何の責任を持つ必要があるか
オブジェクト指向ってそーゆうことだったのかorz
たしかにただ分解しただけでこっから先どうすれば
いいのか分からなかったwwただの分類じゃ駄目なんだなあw
ありがとうございます。これで指針がたてられそうです。
0311デフォルトの名無しさん
2009/05/22(金) 01:47:52at PowerSpectrum.main(PowerSpectrum.java:39)
これってさ、配列の中にあるアドレスがもうないから表示できねえよってことだよね?
まさかPCの性能上表示不能なんてことはないですよね?
0312デフォルトの名無しさん
2009/05/22(金) 01:56:33フーリエ変換で2のべき乗サイズの配列しか用意してないのに
その1個先のナイキスト周波数もしくはそれに相当する時間か空間軸一杯まで
読み込むか書き込むかしたんじゃないの?
PowerSpectrum.javaの39行目あたりより前を見て添え字が変になっていないか確認しろ
0313デフォルトの名無しさん
2009/05/22(金) 01:57:460314デフォルトの名無しさん
2009/05/22(金) 02:00:350315デフォルトの名無しさん
2009/05/22(金) 02:02:170316デフォルトの名無しさん
2009/05/22(金) 02:04:01http://pc12.2ch.net/test/read.cgi/tech/1186384753/
かな
procとかでスレ名を検索するのがコツ
0317デフォルトの名無しさん
2009/05/22(金) 02:05:130318デフォルトの名無しさん
2009/05/22(金) 02:45:49試行錯誤してて仕様や動作は決まったけど実装を変えたくなったら
リファクタリング
でググるといいよ。
0319デフォルトの名無しさん
2009/05/22(金) 04:05:270320デフォルトの名無しさん
2009/05/22(金) 12:18:430321デフォルトの名無しさん
2009/05/22(金) 12:48:56スクリーンキーボード作りたいんですが
ボタン押したらRobot使ってキーボードを押してKeyPressedの中で処理を行うって
感じでいいのでしょうか?
あと入力された文字の漢字変換を行いたいんですがこの方法で出きるでしょうか?
0322デフォルトの名無しさん
2009/05/22(金) 13:20:34insert と getCaretPosition を使えばよい。
インプットメソッドを通した結果を貰うには……java.awt.im.* を使うのかな。
変換操作もボタンでがんばるんだろうか。どうやるつもりか知らないけど。
0323デフォルトの名無しさん
2009/05/22(金) 13:23:47助言ありがとうございます
0324デフォルトの名無しさん
2009/05/22(金) 13:32:50この部分の実現方法がさっぱり分かりません
どなたか良い実現方法はないでしょうか?
0325デフォルトの名無しさん
2009/05/22(金) 13:34:50ボタンとかイベントとかでどうにかするレベルじゃなくなってくるんではないだろうか。
JavaでIM SPI実装すれば出来るんだろうけど、気が遠くなる。
Robotの出番になるのかな……
0326デフォルトの名無しさん
2009/05/22(金) 13:47:33ありがとうございます
SPIの実装は大変そうなので,Robot使って色々試してみます
また,別の方法で実現できるならば,書き込んでいただけると幸いです
0327デフォルトの名無しさん
2009/05/22(金) 15:22:33http://debugger.ru/demo/projects/virtualkeyboard/
キーボード右下で「Japanese」を選ぶと漢字変換機能が有効になるみたい
0328デフォルトの名無しさん
2009/05/22(金) 15:46:290329デフォルトの名無しさん
2009/05/22(金) 18:59:52例えばDB操作関連のクラスがインスタンス変数でConnectionをprivateで持ってしまうと、
DBUnitって使えなくなってしまいませんか?
(Connectionは外から触らせたくないため、DB操作クラスにはConnectionのgetterはありません)
DB操作関連クラスには、外から渡されるStatementやPreparedStatementで
executeやらexecuteQueryやらexecuteUpdateを実行させて、
booleanなりObject[][]なりintを返します。
このDB操作クラスを使って更新なり削除をした結果を
DBUnitで結果確認用Excelを読み込んで試験したいと思っています。
ですが、JUnitのTestCaseを継承した試験クラスのsetUp()で試験用データをクリーンインサートする際に、
DBUnitがデータ登録用にConnectionを必要とします。
別途Connectionを用意してやらないと無理でしょうか?
0330デフォルトの名無しさん
2009/05/22(金) 19:19:220331デフォルトの名無しさん
2009/05/22(金) 20:48:34JFreeChartを使ってやっとグラフが書けました。
ありがとうございました。
0332デフォルトの名無しさん
2009/05/23(土) 17:46:580333デフォルトの名無しさん
2009/05/23(土) 19:22:470334デフォルトの名無しさん
2009/05/23(土) 19:43:51両者の比較っーことだから。
0335デフォルトの名無しさん
2009/05/23(土) 20:34:010336デフォルトの名無しさん
2009/05/23(土) 20:47:39まあ。まずは読んでから語ろうな
0337332
2009/05/23(土) 21:22:53Swingコンポーネントで描画が発生するとpaintを呼び、paintが
paintComponent→paintBorder→paintChildrenと呼び出すという認識で正しいでしょうか?
今JFileChooserをいじっているのですが、描画が画像のようになります。
実際にプログラムを追いかけてもpaintComponent→左側のToggleButton5個→paintという順で
実行され、表示もその通りになっています。
この順で呼び出される理由もわかりませんが、paintはどこが呼び出しているのでしょうか?
ttp://www.jpdo.net/link/1/img/11577.jpg
0338デフォルトの名無しさん
2009/05/23(土) 21:36:13自分で見つけられるようにならんと、いつまでたっても半人前だぞ。
java.awt.Component#update
0339デフォルトの名無しさん
2009/05/23(土) 21:53:47「オーバーライド:クラス Container 内の paint」
「オーバーライド:クラス Component 内の paint」
「関連項目:update(java.awt.Graphics)」
と辿ると、
「Component の update メソッドがこのコンポーネントの paint メソッドを呼び出し、このコンポーネントを再描画します。」
と書いてある。わけだ。
http://java.sun.com/products/jfc/tsc/articles/painting/index.html
0340デフォルトの名無しさん
2009/05/23(土) 21:54:010341デフォルトの名無しさん
2009/05/23(土) 22:21:420342デフォルトの名無しさん
2009/05/23(土) 22:42:02987,654,321と
いうように、3ケタごとにコンマをうつ方法は
どうやったらいいのでしょうか
0343デフォルトの名無しさん
2009/05/23(土) 22:51:16非スタティックなのをスタティック読みできませんと。
しかし、コンストラクタの中に書いたら、普通にスタティック読みできますね。
自分のクラスでもインスタンス化するのが基本なんでしょうか。
0344デフォルトの名無しさん
2009/05/23(土) 22:56:17System.out.println(MessageFormat.format("{0,number,integer}", 1000000));
0345デフォルトの名無しさん
2009/05/23(土) 23:06:250346デフォルトの名無しさん
2009/05/23(土) 23:08:20スタティック読み???
何を言いたいのかエスパーすると static 参照かな。
staticメソッド(例えばmain)からインスタンス(非static)メソッドを呼んだんだろ?
そしてコンパイルエラーになった、と。
staticメソッドからは、staticメソッドかstaticフィールドしか直接アクセスできない。
そしてコンストラクタはstaticじゃないので別のインスタンスメソッドを呼べる。
0347長いので1/2
2009/05/23(土) 23:10:12処理結果を仮に田中・モブ1・モブ2・・・と表示したくて、
下記のように継承やsuperを使って書いてみたのですが、
なぜか全てモブ2と表示されてしまいます。
下記のように書いてみたのですが(必要部分だけ抜粋)、
なぜそうなってしまうのでしょうか。
【メインクラス】
First a = new First("田中");
Second[] b = new Second[2];
for(int i = 0; i < cm.length; i++){
String i2 = Integer.toString(i+1);
b[i] = new Second("モブ" + i2);
}
(後にa.getName()を表示し、その後下記のようにしてでモブを表示)
for(int i = 0; i < cm.length; i++){
System.out.println(b[i].getName());
}
【spaクラス】
public abstract class spa{
protected static String name;
public Gamer(String name){
this.name = name;
}
public String getName(){
return name;
}
(以下他の処理記述)
}
03482/2
2009/05/23(土) 23:11:39public class First extends spa{
public First(String name){
super(name);
}
(以下、他の処理が記述)
}
【サブクラスその2】
public class Second extends spa{
public Second(String name){
super(name);
}
(以下、他の処理が記述)
}
03492/2
2009/05/23(土) 23:13:00間違いです。Gamerではなく、spaです。
0350デフォルトの名無しさん
2009/05/23(土) 23:19:08>>345
ありがとうございました。
おかげでたすかりました
0351デフォルトの名無しさん
2009/05/23(土) 23:27:12> protected static String name;
static 削ってみれば?
0352デフォルトの名無しさん
2009/05/23(土) 23:43:49ありがとうございます。ちゃんと表示されるようになりました。
staticの使い方があんまり分かってなかったようなので
勉強しなおします。ありがとうございました。
0353デフォルトの名無しさん
2009/05/24(日) 02:24:390354デフォルトの名無しさん
2009/05/24(日) 03:33:310355デフォルトの名無しさん
2009/05/24(日) 09:13:440356デフォルトの名無しさん
2009/05/24(日) 09:15:041.mainクラスで作成したハッシュマップを別クラスのメソッドに渡す
2.そのメソッドでハッシュマップの値を変更する
3.変更後のハッシュマップを返す
ってやった場合でも、値が変更された後のハッシュマップを
mainクラスでも使えるの?
0357デフォルトの名無しさん
2009/05/24(日) 09:25:23使えるよ。
0358デフォルトの名無しさん
2009/05/24(日) 09:34:38更に言えば、main は最初に作った時に
代入した変数を使うことで、変更後の
値を見ることもできるだろうから、
返してもらう必要も無いことが
多いだろうな。
0359デフォルトの名無しさん
2009/05/24(日) 11:40:20そういうプログラムは、そもそもjavaには向かないってことですかね?
0360デフォルトの名無しさん
2009/05/24(日) 12:02:46ものの名前を伝えられるように正しく覚えろって話
0361デフォルトの名無しさん
2009/05/24(日) 12:09:16単純にそれだけを目的のプログラムを作成する、と言えるかもね。
Excel か、スクリプトの方が簡単に早く終わると思う。
ただ普通は
・要件としてJava の使用があって
・仕様を満たすためにはその作業が必要になって
じゃあJavaでどう実装したらいいか、という話になるんじゃないかなぁと思うけどな。
0362デフォルトの名無しさん
2009/05/24(日) 12:36:33とあるプログラムの一部に入れたいんですよ
最初に数を入れてみたいな文字列を表示させてから
キーボードでその変数に数を入力させるみたいなことをする作業が必要な場合ですね。
なんか日本語変になってすいません。
0363デフォルトの名無しさん
2009/05/24(日) 12:50:23その変数って何さ。
Javaにおける入出力の基本
Input/OutputStream, Reader/Writer の関係を調べると良いかもよ
別に知らなくてもプログラムは書けるけど、少しは興味ない?
0364デフォルトの名無しさん
2009/05/24(日) 12:52:59オブジェクトが増えてくると、何が何が何だかわからなくなってくる
0365デフォルトの名無しさん
2009/05/24(日) 13:14:19import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
boolean retry = true;
long val = 0;
while (retry) {
System.out.print("最初に数を入れて、みたいな〜 : ");
String line = reader.readLine();
try {
val = Long.parseLong(line.trim());
retry = false;
} catch (Exception ex) {
System.out.println("\"" +line + "\" はぁ、kyってかんじ〜");
}
}
System.out.println("入力されたのはぁ、" + val + " だね(はぁと)");
}
}
0366デフォルトの名無しさん
2009/05/24(日) 13:17:07最初は、それが手がかりになるかもと思ってググっていたんですがさっぱりで・・・
一応、自力でここまでできたんですよ
int i,j;
i=190;
for(j=0;j<128;j++){
System.out.println("["+i+"]["+j+"] "+hairetu[i][j]);
}
で、このままだとユーザーがどんなに起動しても、i=190の値しか表示できないんです。
そこで、ユーザーがキーボードからこのiに入る数値を入力するって形にしたいんです。
なんの変数?っていう質問の答えになってるでしょうか……
0367デフォルトの名無しさん
2009/05/24(日) 13:33:29遅れてすまない。ありがとう。
0368デフォルトの名無しさん
2009/05/24(日) 13:50:12JOptionPane#showInputDialogはどうよ?
String input = JOptionPane.showInputDialog("数値を入力してください");
int i = Integer.parseInt(input);
0369デフォルトの名無しさん
2009/05/24(日) 14:43:28PowerSpectrum.java:39: シンボルを見つけられません。
シンボル: 変数 JOptionPane
場所 : PowerSpectrum の クラス
String input = JOptionPane.showInputDialog("数値を入力してください");
^
PowerSpectrum.java:40: i は main(java.lang.String[]) で定義されています。
int i = Integer.parseInt(input);
^
エラー 2 個
だそうです。プログラム冒頭のメイン関数で定義したほうがいいんでしょうか
0370デフォルトの名無しさん
2009/05/24(日) 15:13:35・・・import汁
0371デフォルトの名無しさん
2009/05/24(日) 15:13:59うん?まさか>>368のコードをそのままを挿入した?
ちゃんとコンパイル通るように組み替えないと駄目だろ・・
JOptionPaneは
javax.swingパッケージだからインポートしないと使えないよ。
こんな風に
import javax.swing.JOptionPane;
もしかしてインポートも分からない?
>PowerSpectrum.java:40: i は main(java.lang.String[]) で定義されています。
こっちはエラーになったソースを見せくれないと指摘のしようがないなあ。
0372デフォルトの名無しさん
2009/05/24(日) 15:49:47importってのは、プログラム冒頭の奴ですか?
0373デフォルトの名無しさん
2009/05/24(日) 15:54:50>PowerSpectrum.java:40: i は main(java.lang.String[]) で定義されています。
は解決してませんが、ソース全部はった方がいいですか?
0374デフォルトの名無しさん
2009/05/24(日) 16:01:23それくらいは自分で探さないと勉強にならん。
0375デフォルトの名無しさん
2009/05/24(日) 16:05:34勝手に作られるけど
他のクラスからJFrameクラスを使うときは、public staic void main..を削除した方がいい?
0376デフォルトの名無しさん
2009/05/24(日) 16:08:430377デフォルトの名無しさん
2009/05/24(日) 16:11:450378デフォルトの名無しさん
2009/05/24(日) 16:18:44わかった。ありがとう
0379デフォルトの名無しさん
2009/05/24(日) 16:21:26さすがにそうですよね。
やってみます
0380デフォルトの名無しさん
2009/05/24(日) 17:02:31EDT使えとしか書いてないんだっけか。
メインウィンドウをアプリケーションクラスにするのは行儀悪いからアプリケーションクラスがウィンドウ持つようにした方がいい。
0381デフォルトの名無しさん
2009/05/24(日) 17:18:47main.c に全部書かないで、関数は別ファイルに書いて分割コンパイルして
リンク汁。と同じレベルの親心。
0382デフォルトの名無しさん
2009/05/24(日) 17:57:400383デフォルトの名無しさん
2009/05/24(日) 18:02:580384デフォルトの名無しさん
2009/05/24(日) 18:22:48ライブラリとインクルードヘッダはコンパイラ機能として、main.cだけでGUIは書けるぜ。
Windowsでもスタートアップ処理とウィンドウプロシージャ書くだけだからな。
0385デフォルトの名無しさん
2009/05/24(日) 23:10:200386デフォルトの名無しさん
2009/05/25(月) 00:40:40MidiSystem.getSynthesizer() で取得されるのは Java Sound Synthesizer
ところが、MidiSystem.getReceiver() で使われるシンセサイザはOSで使われるシンセサイザなんですね
いま必死こいてMidiSystem.getReceiver()のソースを眺めているのですがサパーリです。
0387デフォルトの名無しさん
2009/05/25(月) 03:00:450388デフォルトの名無しさん
2009/05/25(月) 08:39:32やっぱりゲームでも作ってんの?
まともなソフトウェアMidi音源ありゃなー
0389デフォルトの名無しさん
2009/05/25(月) 10:55:110390初心者たん
2009/05/25(月) 13:30:02booleanの使い方、動きが掴めません、理解できません
下は例題なんですけど8行目のboolean ok これはデフォルトで
falseを返すんですよね??変数ok に 下のほうのboolean型クラスメソッド
showQuestionをキャスト??しかもその横にint型の引数?true of falseを返す
と書いてあったのみたのですが???調べまくってソース書いてもわからずじまいw
こんなつまらない質問答えてくださるかたお願いしますお願いします
import java.io.*;
public class kuku2{
public static final int maxQuestion=10;
public static void main (String[] args){
int goodAnswer = 0;
System.out.println("これから九九の問題を"+ maxQuestion +"出します");
for(int i=0;i < maxQuestion;i++){
boolean ok = showQuestion(i+1);
if (ok){
goodAnswer++;
}
}
double rate = goodAnswer * 100.0 / maxQuestion;
System.out.println("");
System.out.println("問題は"+ maxQuestion +"問ありました");
System.out.println("正解は"+ goodAnswer +"問で、");
System.out.println("間違いは"+ (maxQuestion-goodAnswer) +"問です");
System.out.println("正解率は"+ rate +"%です");
System.out.println("");
System.out.println("お疲れ様です");
}
0391初心者たん
2009/05/25(月) 13:31:30int x = (int)(Math.random()*9)+1;
int y = (int)(Math.random()*9)+1;
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
try{
System.out.println("第 "+ questno +" 問 "+ x +" × "+ y +" = ?");
String str=input.readLine();
int result=Integer.parseInt(str);
if(x * y == result){
System.out.println("正解です");
return true;}
else{
System.out.println("間違いです");
return false;
}
}
catch(IOException e){
System.out.println(e);
}
catch(NumberFormatException e){
System.out.println("入力が正しくありません");
}
return false; }
}
0392デフォルトの名無しさん
2009/05/25(月) 14:24:25例えばRobot.keyPress(68)としたときキーボードのdが押されますが
この時keylistenerのkeyPressedは呼び出されないのでしょうか?
呼び出されないのなら,どうやって呼び出せば良いのでしょうか?
どなたか教えていただけませんでしょうか
0393デフォルトの名無しさん
2009/05/25(月) 14:39:55boolean型というのは真か偽,つまりtrueかfalseを示す型
public static boolean showQuestion(int questno)これはboolean型の戻り値を返すメソッドで
今回の場合,ランダムで九九の問題を出題し解答者が答えを入力する
その入力された答えが正しいならtrueを,誤っているならfalseをmain()メソッドへ返す
if(ok)はokがtrueならgoodAnswer++するということ
0394デフォルトの名無しさん
2009/05/25(月) 14:51:10その質問は呼び出されるかどうかが知りたいわけ?
それとも試して駄目だったの?
0395デフォルトの名無しさん
2009/05/25(月) 14:55:37試してみてkeypressed()のなかでSystem.out.println("AA")としてみてもAAと表示されなかったんで
呼び出されないのかと思ったんです
それで呼び出せないかと思って質問しました
0396デフォルトの名無しさん
2009/05/25(月) 15:11:28特に問題なく動くけど、反応が無い組み合わせもある。
GUIをどういう構造で構築したかにもよる。
何処にフォーカスがあって、何処にKeyListenerをaddしたかによって変わる。
例えば、単にJFrameを作成しリスナーを追加してロボットでキープレスした場合、キチンと反応する。
次に、contantPaneに、キーリスナーを追加したJPanelを追加した場合、反応は無い。
ただし、そのJPanelにsetFocus(true)をセットしておくと、キチンと反応する。
理由はわからないけど、色々試してみたら?
0397デフォルトの名無しさん
2009/05/25(月) 15:13:38色々やってみます
0398デフォルトの名無しさん
2009/05/25(月) 15:15:46そのArrayListの中のデータをjTableにぶち込む方法ってあるか?
0399デフォルトの名無しさん
2009/05/25(月) 15:21:330400初心者たん
2009/05/25(月) 15:23:40親切なレスに感謝です、ありがとうどざいます。
8行目のbooleanは理解できました;;
えっと、>>391 の boolean型メソッドshowQuestionの後のカッコに
int型の引数 questno と書かれてるとこなんですが、その値が6行目の
"第 ○ 問" の ○のとこにキャスト? されてるのも理解できずじまいです;;
正答ならtrue 誤答ならfalse なのにshouQuestionメソッドの戻り値にint型の
questno とあって、しかもそれが問題数を表示するところにキャストされてる???
理解しきれてなくて質問が変だったら指摘ねがいます;;
0401デフォルトの名無しさん
2009/05/25(月) 15:40:08キャストというのは型変換を行うことで今回行われているのは391の2,3行目のみ
randomはdouble型で値を返すためそれをint型へ変換している
questnoとは今が何問目か示すための変数
6行目では何問目でどんな問題内容か出力するだけ
戻り値とはreturn ○○というところだけなので,どこを見て戻り値がintだと思ったのか
わからないけど今回の場合戻り値はtrueかfalseしかない
というかintを返そうとしたらエラー出る
0402デフォルトの名無しさん
2009/05/25(月) 16:00:09かなり変なこと書いていると思うので
本などで確りと基本を一度やったほうがいいと思う。
このまま進んでも上滑りしてモノにならないと思う。
0403デフォルトの名無しさん
2009/05/25(月) 19:01:51意味はわからないけど、そういうことをすれば取得できるんですね
ありがとう
>>388
私はカラオケツールを作ってます↓JavaSoundで何が出来て何が出来ないのかわかっていないので試行錯誤の日々です。
http://www.psychosistem.jp/software/jmmlplayer
0404デフォルトの名無しさん
2009/05/25(月) 19:11:41DBUnitを使用したJUnitの各試験ケースにおいて、メソッドの先頭にて試験対象のテーブルのバックアップを取り、
メソッドの末尾にてバックアップしたテーブルをリストアしています。
バックアップはFile.createTempFileにてExcelに出力しています。
(setUpとtearDownはDB接続、切断のみです)
メソッドの末尾でDB情報をリストアした後で不要となったExcelファイルを削除したいのですが、
File.deleteで消せる場合と消せない場合があります。
どのような原因があるかご存知の方、教えて頂けないでしょうか。
0405デフォルトの名無しさん
2009/05/25(月) 21:01:00truncate するんじゃなければ普通にrollback じゃだめなんだろうか・・
ロックの確認とかはコミット切ってコネクション2本張らないと無理だけどさ。
0406デフォルトの名無しさん
2009/05/25(月) 21:09:39ファイルはちゃんとクローズしてる?
というかExcelファイルってPOIでも使ってるのか?
0407デフォルトの名無しさん
2009/05/25(月) 21:30:31ファイルがクローズされていない。
0408デフォルトの名無しさん
2009/05/25(月) 21:39:35今「DBUnitを利用した単体テストに関して」でググって最初に出てくるページを読んでます。
試験手法の問題だとは思いますが、トランザクションをロールバックする方法も検討してみます。
>>406
setUp/tearDownでDB接続・切断しているのは、
そのタイミングでしかコネクションを制御できない(と思ってます)からです。
(コネクション一本でやってるので)
試験用メソッドの前後で行うsetUp/tearDownではなく、
試験クラスそのものが動く前後のsetUp/tearDownみたいなものがあればいいのですが。
(あったりするのでしょうか?)
POIに関しては、自分が明示的に使っているわけではなく、
DBUnitがExcelの情報を読み書きする際に必要となります。
ファイルのクローズ等に関してですが、もう少し色々調査をして見ます。
消せたり消せなかったりするのが意味不明ですが……。
レスありがとうございます。
0409デフォルトの名無しさん
2009/05/25(月) 21:54:25DbUnitってJUnit 3.8ベースだっけ? junit.extensions.TestSetup というのを使うらしい。
0410デフォルトの名無しさん
2009/05/26(火) 00:27:10テスト用データソース用途なら、表形式で編集できるから便利だけど。
0411デフォルトの名無しさん
2009/05/26(火) 00:37:24継承しないで使う方法は公式ドキュメント見れ。
0412デフォルトの名無しさん
2009/05/26(火) 01:35:21> 消せたり消せなかったりするのが意味不明ですが……。
まさかfinalizeにclose書いてたりしないよな?
0413デフォルトの名無しさん
2009/05/26(火) 08:47:51あるオブジェクト(プリミティブ除く)の文字列表現を取得するとき、
実現する方法がいくつか有ると思います。
(1) String#valueOf(対象クラス)
(2) 対象クラス#toString()
(3) new String(対象クラス)
(4) new StringBuffer(対象クラス)
(5) new StringBuilder(対象クラス)
(6) (1)から(5)の組み合わせ
上記の方法は最終的にはどれも(2)またはObject#toString()の内容となりますが、
どのような目的で使い分けるのでしょうか。
(2)のtoString()はデバッグプリントな感じ。
(4)と(5)は更に加工する場合でスレッドセーフである必要の有無。
今のところはこの程度の認識です。
よろしくお願いします。
0414デフォルトの名無しさん
2009/05/26(火) 17:20:27個人に聞いていたのですが、何度もメールするのもちょっと悪いので
ここで聞かせて下さい。
JPQLの問題です。
SELECT t FROM TList WHERE t.data1 = '2009/05/21'
にて動作は確認できました。
この文字のところを変数に変更することは可能なのでしょうか。
通常のSQLであれば、'" + today + "'でいけるのですが
JPQLでの記述方法が判りません。
色々調べてみたのですが、どうにも。
ヒントを頂けると幸いです。
0415デフォルトの名無しさん
2009/05/26(火) 17:23:150416デフォルトの名無しさん
2009/05/26(火) 17:25:34ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/class-use/String.html
0417デフォルトの名無しさん
2009/05/26(火) 19:37:250418デフォルトの名無しさん
2009/05/26(火) 20:17:43アドレスを表示させる手段ってありますか?
print文でオブジェクトを与えて出力した時の
文字列はアドレスは表してないですよね?
0419デフォルトの名無しさん
2009/05/26(火) 21:43:020420デフォルトの名無しさん
2009/05/26(火) 22:02:17Query q;
q = entotyManager.createQuery("SELECT t FROM TList WHERE t.data1 = :dataParam");
q = q.setParameter("dataParam", "2009/05/21");
かな?
q = q.setParameter("dataParam", new Date("2009/05/21"), TemporalType.DATE);
かも?
0421デフォルトの名無しさん
2009/05/26(火) 22:05:23SimpleDateFormat.parse("2009/05/21")
0422デフォルトの名無しさん
2009/05/26(火) 22:19:32よく見れば、(3)(4)(5)はそんなコンストラクタ無いよな。自動的にtoString()されるのかな?
0423デフォルトの名無しさん
2009/05/26(火) 22:52:09ない。nimbusのソースでも読むとか
0424デフォルトの名無しさん
2009/05/27(水) 01:05:13これをやっていますが、
XMLのファイルがFileNotFoundExceptionで参照できません。
File.exists(XMLのパス)ではtrueなので100%ファイルはあるのですが、何が問題なのでしょうか?
0425デフォルトの名無しさん
2009/05/27(水) 01:13:410426デフォルトの名無しさん
2009/05/27(水) 01:47:380427デフォルトの名無しさん
2009/05/27(水) 06:29:30引数付きのコンストラクタにwhile文で変数を2つ、任意の回数だけ渡したい。
GAME[] g = new GAME[変数のペアを渡す回数];
while(i<回数){
<プレーヤ名入力文>
<ゲーム名入力文>
g[i] = GAME(ブレーヤ名,ゲーム名);
i++;
}
普通ならこれで良いんだろうけど、自分の場合は名前とゲーム名を
スタートという文字が打たれるまで入力し続けなくちゃいけない。
つまり上の文では変数のペアを渡す回数を事前に設定しなくちゃいけないから
無理。
こういう場合どうしたら上手くいくだろう。やっぱり、whileの中ではハッシュマップにデータを入れて、
whileが終わった後にハッシュマップの内容を引数付きのコンストラクタに渡さなきゃダメかな。
でもそれをしたら実行途中で止まるんだよね。
0428デフォルトの名無しさん
2009/05/27(水) 06:55:49これでいいんじゃね?
List<GAME> games = new ArrayList<GAME>();
while(true){
<プレーヤ名入力文>
<ゲーム名入力文>
//スタートが出たらループを抜ける
if( プレーヤ名.equals(スタート) || ゲーム名.equals(スタート) ){
break;
}
games.add( new GAME(プレーヤ名,ゲーム名) );
}
0429428
2009/05/27(水) 07:00:17>>名前とゲーム名をスタート
だから || じゃなくて &&か?
0430デフォルトの名無しさん
2009/05/27(水) 07:49:12ApplicationContext contxt = new ClassPathXmlApplicationContext("applicationContext.xml");
の箇所です。コンストラクタで引っかかります。
ソースはURLのものから一言一句変えていません。
>>426
絶対パス、参照パス、
Fileオブジェクトを作ってからのAbsolutePathもCanonicalPathも
全てがFileNotFoundExceptionになる模様です。
0431デフォルトの名無しさん
2009/05/27(水) 08:11:47ありがとう。しかし、別クラスのコンストラクタに渡した値を、
そのクラスのgetNameメソッドとかでメインメソッドに返したい場合は
どうしたらいいの?
0432デフォルトの名無しさん
2009/05/27(水) 10:22:37有難う。
俺がdate1とdata1を勘違いしてただけだった。
ついでに。
最初にMySQL接続する時に
try節の中で
Connectionするだろ? いわば
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysystem", "root", "root");
こんな感じだけど
この時につないでるのはmysystemでしょ?
これって同時にmysystem2があったとしたら接続することって可能?
それともその必要な処理が終わったらcloseしてまたDriverとかclassとか読み込んで
また接続しなおすの?
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysystem2", "root", "root");
って感じで
0433デフォルトの名無しさん
2009/05/27(水) 11:01:210434430
2009/05/27(水) 11:04:04どういうことなんだろう?
0435デフォルトの名無しさん
2009/05/27(水) 11:48:460436430
2009/05/27(水) 11:56:19springにおいては、DI情報を記述するXMLはクラスパス上にあるものしか参照できないみたいです。
ClassPathXmlApplicationContextのAPIドキュメントには書いていないので引っ掛かってしまいました。
スレ汚し失礼しました。
0437デフォルトの名無しさん
2009/05/27(水) 11:57:40確かに違和感あるね。他のRDBMSはどうなんだろう。
mysystemはデータベースってことになってるから、
個別のデータはテーブルということになる。
実際に業務システムを構築するときには、DBは販売と人事のデータ連携など
よくある話で、通常はデータベースを分ける。
しかし接続がDB単位となると、一つのDBにぶっこみになるんで扱い難いね。
各人、どうやって凌いでいるんだろう。
それとバックアウトの考え方は、存在するのだろうか。
0438432
2009/05/27(水) 12:04:27やっぱり違和感ありますよね。
少し前から疑問に思ってて。
例えば
mysystem1には顧客の個人データ
mysystem2にはその日行った個人データの一部+作業データ
とかになってくるとどうにもねぇ。
販売に於いても同じような事が言えるし。
やっぱり >>433 が言ってる様に繋ぎ直す、または二本張りか。
繋ぎ直す方がスマートには見えるが、なんかいちいち閉じて繋いで閉じて繋いで・・・
ってやってると 複数回やる場合には絶対ロスがありそうだし。
む〜ん。 何か知恵があればお願いします。
0439デフォルトの名無しさん
2009/05/27(水) 12:29:260440デフォルトの名無しさん
2009/05/27(水) 12:32:270441デフォルトの名無しさん
2009/05/27(水) 12:48:38コネクションプールは使ってないわけ?
0443デフォルトの名無しさん
2009/05/27(水) 13:35:30ループ使っても閉じて・繋いで・閉じて・・・でしょう?
オーバヘッドでかいよ。
0444デフォルトの名無しさん
2009/05/27(水) 14:27:59コネクションも繋ぎっぱで良いし、
SQL文毎にリクエスト発生は普通だし、
いったい何が問題なんだ
0445デフォルトの名無しさん
2009/05/27(水) 14:31:15まずは実現させることが最優先じゃね
0446デフォルトの名無しさん
2009/05/27(水) 15:25:260447デフォルトの名無しさん
2009/05/27(水) 15:32:51ボタンbを押すとB.classに遷移するようにしたいのだがHTMLにはどう書けばいいですか
0448デフォルトの名無しさん
2009/05/27(水) 16:05:37まあその内容だとスルーされて終わりそうだが
0449デフォルトの名無しさん
2009/05/27(水) 16:38:20setter内でインスタンス変数を参照する箇所にはthisが付きますが、
getterにはthisが付きません。
メソッド内で変数名が競合しない場合、thisは付けないものなのでしょうか。
0450デフォルトの名無しさん
2009/05/27(水) 16:50:24コーディング規約によっては this必須にしてる場合もある。
そうでなければ必要ないなら付けなくてもいい。
例えば Sunのコーディング規約だと this は必須ではない。
0451デフォルトの名無しさん
2009/05/27(水) 17:24:490452デフォルトの名無しさん
2009/05/27(水) 20:36:17ProcessBuilderとかgetResource()使ってやってみたんだがうまくいかないorz
0453デフォルトの名無しさん
2009/05/27(水) 20:45:350454デフォルトの名無しさん
2009/05/27(水) 21:39:08MySQLだとデータベース指定込みのテーブル指定できないのかと
一瞬思った俺の純心をかえせw
create database test01;
use test01;
create table users (id INT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE, name VARCHAR(255));
insert into users values (1, "aaaaaaa");
insert into users values (2, "bbbbbbb");
create database test02;
use test02;
create table datas (id INT, data VARCHAR(255));
insert into datas values (1, "000000000");
insert into datas values (1, "111111111");
insert into datas values (2, "222222222");
use user_db;
select u.name, d.data from test01.users u, test02.datas d where u.id = d.id;
+---------+-----------+
| name | data |
+---------+-----------+
| aaaaaaa | 000000000 |
| aaaaaaa | 111111111 |
| bbbbbbb | 222222222 |
+---------+-----------+
3 rows in set (0.00 sec)
こんなことも知らんとは、新人教育やり直しだな。
ちなみにSybaseだとデータベース名とテーブル名の間にテーブルのオーナー名が入る。
0455デフォルトの名無しさん
2009/05/27(水) 21:42:23外部プログラムをA、javaプログラムをBとすると、AとBを同じjarにアーカイブしてBのコードからAを実行したい。
画像とかならgetResource()でBのコードから使えるんだけど、同じ様にしてBのコードから実行ファイルを実行する方法が分からないという事です。
0456デフォルトの名無しさん
2009/05/27(水) 21:48:59最新版にはなってるみたいなんですが何か大切なことができてないんでしょうか。
それともアンチウイルスソフトの感度を上げてスキャンしてるからでしょうか。
0457デフォルトの名無しさん
2009/05/27(水) 21:51:27WEBは食わず嫌いだったんだが、この不況で研修と称してSeasar始めてみたら
意外とおもろいよ。
書類用の Cerelon 1GHz 512MB のノートなんだが hot deploy に二分w
0458デフォルトの名無しさん
2009/05/27(水) 22:21:46マテ、Javaの最新は、5.0は1.5.0_19、6.0は1.6.0_13だぞ。
http://java.sun.com/javase/ja/6/download.html
http://java.sun.com/javase/downloads/index_jdk5.jsp
0459デフォルトの名無しさん
2009/05/27(水) 22:21:56質問の意味が解らない。意図も解らない。
0460デフォルトの名無しさん
2009/05/27(水) 22:23:41ホットデプロイ動くのうらやましす
ウチのPenM1.7GHzとmem512MBのDELLノートだが、
トム猫起動中にソース直すとOutOfMemory出るから、
ソース直すたびに再起動なんだぜ
そんな俺もSeasar飽きてきてSpring始めました
>>458
アンチウィルスの定義ファイルは最新版ってことじゃないのか?
0461456
2009/05/27(水) 22:38:22「javaws\jre1.5.0_06」で検索してjavaアプリケーションキャッシュビューアというのを開いて
編集→設定→アップデートのタブにある今すぐアップデートをクリックしたんですが
これでは出来てなかったんですね;
ググってみたら右下にjavaのアイコンがでて最新版のアップロードが必要な時は
表示されるってあったんですがjavaのアイコンが見当たらないのもまずいんでしょうか。
ちなみに今リカバリ後の状態です。
5.0と6.0をそれぞれインストールすればいいんですよね。
貼って下さったサイトはそれぞれどれをダウンロードすればいいんでしょうか。
0462デフォルトの名無しさん
2009/05/27(水) 22:40:09>301 に晒してある設定でなら、なんとか動く。
VisualSVNとMySQLも調整次第で同時起動可能。
H2使えという話もあるがw
ところでEclipseのSVNで file:///C/svn/ とか使えないんだが・・・使える方法
ないかな?
0463デフォルトの名無しさん
2009/05/27(水) 22:42:26GridBagLayoutについて質問させてください。
当方、JAVAをやり始め、フォームエディタを使わないでGUIを
作ろうとしています。
画面構成として、JPANELにGridBagLayoutを設定して、
そのグリッドの中にボタンだとかラベルを格納しているのですが、
どうにもつかいづらく感じています。
なぜGridBagLayoutを使っているかというと、いくつかのサイトで、
レイアウトの中ではGridBagLayoutが一番融通がきくという旨の
記述がよく見受けられたからです。
確かに、SQLから取得したものを表状にして表示させるには
都合がよいのですが、ボタンの配置だとかになると、あくまで
セル単位でしか移動できません。
これならば、HTMLと同じ間隔で配置のできるsetBoundsのほうが
使い勝手はよいのではないでしょうか。
setBoundsの方も使ってみようと思うのですが、
そこまで「GridBagLayoutは融通がきく」といわれているのは
なぜなのでしょうか。
長文になってしまって申し訳ありません。
0464デフォルトの名無しさん
2009/05/27(水) 22:46:00サイズを変更して、縦長、横長にしてもあら大丈夫。
0465デフォルトの名無しさん
2009/05/27(水) 22:53:46ありがとうございます。
サイズを変更したコンポーネントと、他のコンポーネントとの
相対位置がかわらないということでしょうか?
0466デフォルトの名無しさん
2009/05/27(水) 23:55:43その中で、複数セルをまたがった配置ができるというのがミソ。
絶対、Lotus123とかExcel見て思いついたんだろうなぁ、というレイアウト。
そういった単純なわりには多彩な表現力と、全体サイズが変わった時もけっこう安心
という点が好まれる理由だと思ってる。
0467デフォルトの名無しさん
2009/05/28(木) 00:14:101.5.0_19はSUNに登録しないと落とせないような。
java関連のプロダクトのアーカイブページには6の方はupdate13まで落とせるけど、
5の方はupdate18までしか選択できない。
登録フォームまでしか見てないんだが捨てアドを作って他の必須項目は匿名希望とかでもいけるのかな?
0468463
2009/05/28(木) 00:17:12ただ、Excelのほうは、セルの大きさを自由に設定できるのですが、
GridBagLayoutはできなくないでしょうか?
(私がしらないだけであれば、申し訳ありません)
調べてはみたところ、セルの最小幅は設定できそうですが、
最大幅の設定はできなかったのではと思います。
確かに、セルの幅、高さ指定が自由にできるのであれば、
使い勝手はよさそうですね
0469デフォルトの名無しさん
2009/05/28(木) 00:30:01融通が利くからといって使いやすい書きやすいってことはない
汎用性は高くなくても要求に必要十分なものがあればそのほうが使いやすいことも多々ある
複数のレイアウトマネージャの組み合わせを検討してみるとか
GridBagLayoutで制約条件を書くよりは少し楽な(でも少し重い)GroupLayoutを使ってみるとか
自分に必要な機能だけを実装したレイアウトマネージャを作ってみるとか
状況に応じてやりようはいろいろある
0470デフォルトの名無しさん
2009/05/28(木) 00:34:370471463
2009/05/28(木) 00:40:49やはり、自分がやりたいことに適している方法と組み合わせてみます。
ありがとうございました。
参考までにお聞きしたいのですが、このスレには、「自分はGridBagLayoutが使いやすいから
使っているなぁ」って方はいらっしゃいますか?
0472デフォルトの名無しさん
2009/05/28(木) 00:46:31一つのレイアウトマネージャである程度複雑なレイアウトができるという点で、
確かに昔は融通のきくレイアウトマネージャの筆頭だったけど。
0473デフォルトの名無しさん
2009/05/28(木) 00:49:15としてあるところに
implements KeyListener
を追加したいのですがエラーになります
どう書けば追加できますか?
0474デフォルトの名無しさん
2009/05/28(木) 00:50:11Antを使って1.5でビルドしたいです、
<javac srcdir="${src.dir}" destdir="${class.dir}" source="1.5"/>
としているのですが、実際1.5のJREで実行すると
java.lang.UnsupportedClassVersionError: Bad version number in .class file
となります。
何がいけないのでしょうか?
0475デフォルトの名無しさん
2009/05/28(木) 00:51:49public class test extends Frame implements ActionListener,Runnable implements KeyListener {
って書こうとしてる?
public class test extends Frame implements ActionListener,Runnable,KeyListener {
0476デフォルトの名無しさん
2009/05/28(木) 00:53:59target属性は?
0477473
2009/05/28(木) 00:56:34その下段で書くとabstractじゃないとかいうエラーになります
それでpublicをabstractに変えると別のエラーになります
0478デフォルトの名無しさん
2009/05/28(木) 00:58:49そのエラーをちゃんと読んでKeyListenerを実装するのに必要なメソッドを追加しようとか思わないのか?
0479456
2009/05/28(木) 01:00:56http://www.java.com/ja/でjavaの有無をチェックしたら
「お使いのオペレーティングシステムに推奨されたバージョン (Version 6 Update 13) の Java がインストールされています。 」
と出たんですが、>>458さんが教えてくれた6.0の最新版の1.6.0_13は入ってるってことですか?
5.0の方は入ってないから脆弱性で検知されてしまうんでしょうか。
0480473
2009/05/28(木) 01:01:13abstractもよくわかってないもんで
0481デフォルトの名無しさん
2009/05/28(木) 01:04:02何を脆弱性とするかはアンチウイルスソフトによって違う。
アンチウイルスソフトのメーカーに問い合わせた方がいい。
0482デフォルトの名無しさん
2009/05/28(木) 01:10:11言語の基本的な理解が十分でないと思うので今後もこの言語と関わるならインタフェースに関して復習すべき
0483デフォルトの名無しさん
2009/05/28(木) 01:11:53レスありがとうございます。
脆弱性はアップデートが必要なファイルが検知されるそうです。
「java\jre1.5.0_06」と「javaws\jre1.5.0_06」が検出されてVersion 6 Update 13はインストールされてるということは
5.0を1.5.0_19にアップロードする必要があるってことでいいんでしょうか。
1.5.0_19へのアップロード方法をググったら>>458さんが貼ってくれたサイトの日本語版を見つけたんですが
1.5.0_18しか無いみたいです。
http://java.sun.com/j2se/1.5.0/ja/download.html
5.0と6.0の両方をインストールする必要があるんでしょうか?
0484デフォルトの名無しさん
2009/05/28(木) 01:18:28Javaは、新しいバージョンをインストールしても古いバージョンが残る。
プログラムの追加と削除から古いやつを明示的にアンインストールしる。
特に事情がない限り、6.0が入ってれば5.0は不要。
0485デフォルトの名無しさん
2009/05/28(木) 01:36:40プログラムの追加と削除を見たらjava (TM) 6 update 13というのしか入ってませんでした。
バージョンは6.0.130とあるんですが1.6.0_13のことでいいんでしょうか。
とりあえずCCclernerを使って脆弱性が検知されなくなるか調べてみます。
0486デフォルトの名無しさん
2009/05/28(木) 01:43:11それだと、そのJava処理系は内部でJavaを使ってる特定のソフトのためのものかもしれん。
C:\Program Files\Java (XP以前の場合)の下にないなら、おそらくそうだと思われ。
0487デフォルトの名無しさん
2009/05/28(木) 01:50:03XPで「C:\Program files\java\jre1.5.0_06\bin\java.exe」と
「C:\Program files\java\jre1.5.0_06\bin\javaws.exe」が検知されました。
最初から全部書かないですみません;
0488デフォルトの名無しさん
2009/05/28(木) 02:09:23同じ jar にアーカイブする事と B から A を
呼び出す事には何の関係もない。
呼び出すやり方が間違っていたら同じ
jar になっていても呼び出せないし、
正しく呼べば別の jar でも呼べる。
そして同じ jar にアーカイブする事自体は
呼べるかどうかとは無関係に簡単だ。
0489デフォルトの名無しさん
2009/05/28(木) 02:16:22getResource() で取得した実行ファイルをテンポラリファイルか何かに保存して実行。
0490デフォルトの名無しさん
2009/05/28(木) 03:05:20開発環境を整えようと、Java SE 6からJDK6をDLし、
実行してインストールをしようと思ったのですが、エラーが発生して強制終了し、インストールできません。
JDK5でも試してみましたが、やはり同様の現象が起こりました。
どなたか、対処法を知っている方がいらっしゃったら、教えてください。お願い思案す。
0491デフォルトの名無しさん
2009/05/28(木) 04:47:03どんなエラーが出て何が強制終了するのでしょうか
0492485
2009/05/28(木) 06:30:44「C:\Program files\java\jre1.5.0_06\bin\java.exe」と「C:\Program files\java\jre1.5.0_06\bin\javaws.exe」が入ってるフォルダ
を開こうとすると「このフォルダにはシステムを正常に保つためのファイルが含まれています。
フォルダの内容は変更しないでください」と出るんですが、更新か削除か何かできないんでしょうか。
0493デフォルトの名無しさん
2009/05/28(木) 08:44:45ある時はAのフレームだけ、その他はBのフレームを呼び出したい
なんか、いい呼び出し方ない?
0494デフォルトの名無しさん
2009/05/28(木) 09:46:140495デフォルトの名無しさん
2009/05/28(木) 10:11:26そのメッセージで検索しました? それはOSのシステム保護メッセージに使われてる文面です。
その近くに「このフォルダの内容を表示する」というのはありませんか?
0496デフォルトの名無しさん
2009/05/28(木) 11:55:50なるほど。やってみます。
0497490
2009/05/28(木) 12:13:26エラー署名は
AppName: msiexec.exe AppVer: 4.5.6001.22159 ModName: msihnd.dll
ModVer: 3.1.4001.5512 Offset: 00036935\
です。
0498デフォルトの名無しさん
2009/05/28(木) 12:42:50もしかしたら「Windows インストーラ」が壊れてるのかもしれません。
(解決案はひとつずつ試してみることをお勧めします。
ttp://support.microsoft.com/kb/315346/ja
ttp://support.microsoft.com/kb/886630/ja
0499デフォルトの名無しさん
2009/05/28(木) 13:33:00ないかなあ。どこかで、アンインストーラを探してみるのも一考。
0500デフォルトの名無しさん
2009/05/28(木) 14:04:05>>499
インストーラの再インストールを行ってみた結果、無事インストールすることができました!
本当にありがとうございました!
むしろ、javacのトラブルではなくて、申し訳ない><
0501デフォルトの名無しさん
2009/05/28(木) 16:09:31public class test extends JFrame implements ActionListener,KeyListener {
test.java:6: test は abstract でなく、java.awt.event.ActionListener 内の abstract メソッド actionPerformed(java.awt.event.ActionEvent) をオーバーライドしません。
とエラーが出るのに
public class test extends JFrame implements ActionListener {
public class test extends JFrame implements KeyListener {
と単独でやると不思議とエラーになりません
都合でabstractで宣言することはできないのですが
同時にimplementsできないActionListener と KeyListenerを
なんとか同時にimplementsする方法ないでしょうか?
0502デフォルトの名無しさん
2009/05/28(木) 16:46:33import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
public class TestFrame extends JFrame implements ActionListener, KeyListener {
// ActionListener
public void actionPerformed(ActionEvent e) {
}
// KeyListener
public void keyPressed(KeyEvent e) {
}
// KeyListener
public void keyReleased(KeyEvent e) {
}
// KeyListener
public void keyTyped(KeyEvent e) {
}
}
abstract点けたくないなら、インターフェースのメソッド実装せんとエラーになるのは当たり前じゃね?
0503デフォルトの名無しさん
2009/05/28(木) 17:00:25ありがとうございます
いくつか抜けてました
0504デフォルトの名無しさん
2009/05/28(木) 17:19:59スキャン結果から「C:\Program files\java\jre1.5.0_06\bin\java.exe」と「C:\Program files\java\jre1.5.0_06\bin\javaws.exe」
のファイルを開いて、それが入ってる上のフォルダに遡っていったら保護メッセージが出てるページに行き当たりました。
その中に入ってたのでフォルダ内で削除するのはまずいんでしょうか。
0505デフォルトの名無しさん
2009/05/28(木) 17:31:270506デフォルトの名無しさん
2009/05/28(木) 17:33:49うぜえからOSからクリーンインストールしろ。
0507デフォルトの名無しさん
2009/05/28(木) 17:40:13クリーンインストール後のことなのでそれも無理そうです。
しつこくしてしまい失礼しました。
レスしてくれた方ありがとうございました。
0508デフォルトの名無しさん
2009/05/28(木) 18:08:14定数を使用する側のクラスでimplementsするのって邪道なのでしょうか?
interfaceは実装クラスの振る舞いを定義するようなものですし、
抽象メソッドが一つもないのは意義的に間違っていますよね?
0509デフォルトの名無しさん
2009/05/28(木) 18:22:460510デフォルトの名無しさん
2009/05/28(木) 18:24:34言語文法で網羅されている仕様を、一部の狂信的マニアが、
己の好みに反する事に対して邪道と言って見たり、
ある種の宗教的な標準化組織が、勝手に標準化事項を標榜し
それに反することを邪道と言ったりするが、気にすることはない。
動けば、これ全て正道なり。
0511デフォルトの名無しさん
2009/05/28(木) 18:26:25特に 1.5 で import static ができて implements 不要になったから尚更。
0512デフォルトの名無しさん
2009/05/28(木) 18:44:03バッドノウハウじゃなくてアンチパターンな。
0513デフォルトの名無しさん
2009/05/28(木) 20:32:58各クラスから使用するstatic 変数に格納する処理を
作成しようとしています。
以下のコードでファイル名PropFileを外部の
メインクラスから指定したいのですが
コンストラクタでは初期化順序が後になり
下記のコードですと実行時にエラーとなります。
ファイル名をメイン処理から渡したいのですが
方法をご教示ください。
Property.java
public class Property {
private static String PropFile;
Property(String propfile){
PropFile = propfile;
}
public static long COUNT = getkeyValue("COUNT");
private static String getkeyValue(String key) {
FileReader fr = new FileReader(PropFile);
データ取得処理
・・・
}
}
メイン処理
public static void main(String[] args) {
new Property("ファイル名");
・・・
}
0514デフォルトの名無しさん
2009/05/28(木) 20:41:51Exception in thread "main" java.lang.ExceptionInInitializer
Caused by: java.lang.NullPointerException
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
です。
別のメイン処理からもこのクラスを使って
別ファイル内のデータを読み込むようにようにしたいです。
現在は同じ内容の別クラスを作成し、読み込むファイルをメインから
渡さずにそれぞれFileReaderの引数をファイル名で
ハードコーディングしてクラスを分けているので共通化できないか
と思います。
0515デフォルトの名無しさん
2009/05/28(木) 20:44:46>実行時にエラー
そもそも提示されてる箇所だけじゃ、↓がコンパイルエラーだ
public static long COUNT = getkeyValue("COUNT");
private static String getkeyValue(String key) {
変に抽出して書くと逆に相手にされなくなるぞ
0516デフォルトの名無しさん
2009/05/28(木) 20:55:270517デフォルトの名無しさん
2009/05/28(木) 20:58:36下記はすみません、誤植でした
public static String COUNT = getkeyValue("COUNT");
private static String getkeyValue(String key) {
ですね。
もし、これでも不明でしたら全部載せます。
>>516
SJISで読まないといけないものもあり、自作しました。
0518デフォルトの名無しさん
2009/05/28(木) 21:05:19車輪の再発明って流行ってんのかい?
0519デフォルトの名無しさん
2009/05/28(木) 21:20:05>SJISで
InputStreamReaderで読めばいいのに。
package PropertyTest;
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Properties prop = new Properties();
FileInputStream pfile = new FileInputStream(new File("app.properties"));
prop.load(new InputStreamReader(pfile, "SJIS"));
System.out.println(prop.getProperty("key"));
System.out.println(prop.getProperty("鍵"));
pfile.close();
}
}
key=値
鍵=value
init:
deps-jar:
Compiling 1 source file to C:\usr\NetBeansProjects\PropertyTest\build\classes
compile:
run:
値
value
構築成功 (合計時間: 0 秒)
0520デフォルトの名無しさん
2009/05/28(木) 21:22:26ファイル読み込み機能が主題のように書いてしまい
混乱させてすみません。
>>514の方法で
現在もファイル自体は読み込めています。
staticメソッド内でインスタンス変数を使用させて
そのインスタンス変数に外部から値をセットさせる
方法をご教示ください。
>>513はあくまで例としてとらえていただけますでしょうか。
0521デフォルトの名無しさん
2009/05/28(木) 21:23:02実行対象として指定するのはクラスファイルでしょうか、ソースファイルでしょうか?
一応どちらとも動きはするみたいなのですが。
(Eclipse 3.2 + JDK1.5.0_18、Ant1.7.1)
0522デフォルトの名無しさん
2009/05/28(木) 21:23:51この時に、BufferedReaderのインスタンスをjava.lang.Objectにキャストすれば、
BufferedWriterで使えるようになるの?
0523デフォルトの名無しさん
2009/05/28(木) 21:24:43スルーされる前に上げといた方がいいぞ
>staticメソッド内でインスタンス変数を使用させて
コンパイルできません
0524デフォルトの名無しさん
2009/05/28(木) 21:30:54動いたとしても、建前はクラスファイルのはず。
>>522
キャストじゃ無理。読んだ端から書け。
0525デフォルトの名無しさん
2009/05/28(木) 21:43:570526デフォルトの名無しさん
2009/05/28(木) 21:45:12こんな感じにしたいのですが・・・
getkeyValueメソッド内のPropFile
に値をmainから渡したいのです。
下記のコンストラクタ使用では無理でした。
※ファイル読み込みに関しては
Propertiesを使うということは勉強になりました。
0527デフォルトの名無しさん
2009/05/28(木) 21:45:30new Property("data.properties");
・・・
}
0528デフォルトの名無しさん
2009/05/28(木) 21:46:55private static String PropFile;
Property(String propfile){
PropFile = propfile;
}
static string VAL_A = getkeyValueL("VAL_A","A");
private static String getkeyValue(String key,String defvalue) {
String rtn = "";
try {
FileReader fr = new FileReader(PropFile);
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
if (chkKey(line,key)){
rtn = getProperty(line,key,defvalue);
continue;
}
}
br.close();
fr.close();
} catch (IOException e) {
System.out.println(e);
}
return rtn;
}
0530デフォルトの名無しさん
2009/05/28(木) 21:47:48key = "^\\s*" + key + "\\s*=";
Pattern pt = Pattern.compile(key,Pattern.CASE_INSENSITIVE);
Matcher mt = pt.matcher(line);
return mt.find();
}
private static String getProperty(String line,String key,String defvalue){
String ret;
line = replaceAll(line,"\\s*$","");
key = "^\\s*" + key + "\\s*=\\s*";
ret = replaceAll(line,key,"");
ret = replaceAll(ret,"\\s+$","");
if(ret.equals("")){
ret = defvalue;
}
return ret;
}
}
0531デフォルトの名無しさん
2009/05/28(木) 21:50:10ですが、ちょっとテンパッてたようです。
もう一度、整理してよくしらべてみます。
ご迷惑かけました
0532デフォルトの名無しさん
2009/05/28(木) 21:58:21まあ、好きにするといいさ。
Property(String propfile){
PropFile = propfile;
}
これを
public static void setPropertyFile(String propfile){
PropFile = propfile;
}
に変更して、
public static void main(String[] args) {
new Property("data.properties");
・・・
}
を
public static void main(String[] args) {
Property.setPropertyFile("data.properties");
・・・
}
に変えとけw
0533デフォルトの名無しさん
2009/05/28(木) 22:15:380534デフォルトの名無しさん
2009/05/28(木) 22:54:59ttp://www.atmarkit.co.jp/fjava/javatips/178eclipse030.html
ttp://www.atmarkit.co.jp/fjava/javatips/179eclipse031.html
ttp://www.atmarkit.co.jp/fjava/javatips/180eclipse032.html
Eclipse 3.4が重過ぎるので、Eclipse 3.2に変えようと思い、
上記のURLを例に導入と日本語化、JavaDocの設定を行いました。
最後のmergedocまで終えたのですが、
クラス名の上にカーソルを当ててもホバーが出てきてくれません。
ホバーを出す・出さないの設定がEclipse上にあるのでしょうか?
0535デフォルトの名無しさん
2009/05/28(木) 23:22:55結構古いバージョンから3.4にアップデートしたら
キー操作がかなりきびきび動くようになったと思ってたのに。
>>534
とりあえずワークスペースを別の場所に移動してみれ。
0536デフォルトの名無しさん
2009/05/28(木) 23:35:01xはpaintの中で使います。
下記実行すると下記エラーメッセージが出ます。
たぶんオブジェクト、クラス、メソッドがよくわかっていないためのような気がします。
プログラムに対するヒントまたは誘導していたけないでしょうか?
よろしくお願いいたします
(Windows Vista jdk1.6.0 エディター+javacコンパイル)
------------エラーメッセージ---------
java:14 シンボルを見つけられません。
シンボル: メソッド digit(java.lang.String,int)
場所 : java.lang.Character の クラス
x = Character.digit(str_x, 10);
--------------------------------------
--------------プログラム--------------
import java.applet.Applet;
import java.awt.*;
//import java.lang.*;
public class K extends Applet{
public void paint(Graphics g) {
int x;
String str_x;
// Character Position = new Character();
// 中略
str_x = "a"; //str_x=a-z
x = Character.digit(str_x, 10); //数値に変換
// 中略
}
}
--------------------------------------
0537デフォルトの名無しさん
2009/05/28(木) 23:45:56重い理由は判断の上か?
例えば512MBの実メモリでハングアップしかけるとかのメモリのトラブルだと、
上にあるeclipse.iniの設定変更で、かなり改善する。
512だと倍プッシュで1GBくらいのページングファイルしか取っていない場合も
あるけど、2GBとかに増やしておくことも必要。
瞬間的にとか1GBなんて越えることはざらだから。
>>536
Character.digit は digit(char ch, int radix) と digit(int codePoint, int radix)
しか無いから String を渡せない。
0538デフォルトの名無しさん
2009/05/28(木) 23:57:13起動は確かに3.4の方が長いけどそれ以外は同じ
0539デフォルトの名無しさん
2009/05/29(金) 01:35:51Effective Java 17 章にだめって載っている。
定数のみのクラスを作って
import static パッケージ名.クラス名.変数名;
とするといいと思う。
0540デフォルトの名無しさん
2009/05/29(金) 07:58:58無いときは何処からかコピーをしてきて表示するプログラムを作りたい
この時、読み込み→例外発生→例外が発生したのでコピー→読み込みと
ファイルxがあるか→無かったのでコピー→読み込みのどっちを使ってコードを書くのが普通なの?
0541デフォルトの名無しさん
2009/05/29(金) 08:08:500542デフォルトの名無しさん
2009/05/29(金) 09:24:39どれほどシビアにファイルの生存チェックするかにもよる。
例えば file.exists() と new FileInputStream(file) の間で
ファイルが削除されちゃう可能性も考慮する必要があるなら後者は使えなくなるし。
0543デフォルトの名無しさん
2009/05/29(金) 09:27:22条件次第なとこも。
全部丸投げで仕様もお任せなら前者の方が良いかな。
仕様も作って自分で制御したいなら後者かな。
0544デフォルトの名無しさん
2009/05/29(金) 09:56:38PHPとJAVAどちらを使ったらいいですか?
また、どのようなサイトがどの言語に合っていますか?
0545デフォルトの名無しさん
2009/05/29(金) 10:13:35バックエンドシステムと統合したり何階層にも分かれたり構成が大規模 → Java
0546540
2009/05/29(金) 13:34:410547デフォルトの名無しさん
2009/05/29(金) 16:39:26なんだかなぁ…
0548デフォルトの名無しさん
2009/05/29(金) 16:49:390549デフォルトの名無しさん
2009/05/29(金) 17:06:30何がしたいかによる。
>>545がよくわからん事を書いているが、
PHPでもバックエンドといろいろやりとりしたり出来るし、
バックエンドをJavaとすることだって出来る。
PHPを選ぶ積極的な理由になるのは、
PHPなら共用サーバでDBも含めて非常に安く借りられる、ってこと。
(性能がそれで十分かどうかは別の話)
JavaだとTomcat等のアプリケーションサーバが必要になるが、PHPに比べるとかなり割高。
そんなに性能要らないのにって言っても、メモリが必要だから必然的に高くなるパターンが多い。
ブログサイト・会社のホームページ等のいわゆるホームページ系はPHPで十分な事が多いし、
PHP上で動作するWordpress等のブログエンジン、CMS等を利用した方が
管理の手間が断然減って良いはず。
物販等の場合もほとんどの場合PHPで十分
Javaを利用する場合は・・・・俺の場合、PHPが嫌いだから。
JSPも含めてHTML内にタグ書き込むのが嫌。
ウェブサイト作るのにJava自体が必要な事は少ないから、
何をやりたいのかをちゃんと考えてから選んだ方が良い。
0550デフォルトの名無しさん
2009/05/29(金) 17:15:200551デフォルトの名無しさん
2009/05/29(金) 17:22:320552デフォルトの名無しさん
2009/05/29(金) 18:50:59変数をchar型にしたら出来ました。 有難うございます
0553デフォルトの名無しさん
2009/05/29(金) 19:36:54equals()でやってもfalseが返るのは何故でしょうか
0554デフォルトの名無しさん
2009/05/29(金) 19:48:11必要なら Arrays.equals() とか deepEquals() を使う。
0555デフォルトの名無しさん
2009/05/29(金) 20:07:18どうもありがとうございました
0556デフォルトの名無しさん
2009/05/29(金) 21:58:22GraphicsEnvironment.getAllFonts()しても、opentypeのフォントだけ取得できないし…。
0557デフォルトの名無しさん
2009/05/30(土) 01:07:52>そういう仕様だから
誤解させるようなことを言うな
ちゃんと参照とかで説明してやれよ
0558デフォルトの名無しさん
2009/05/30(土) 01:33:37比較しているのは参照アドレスだから。
内容(?)を比較してtrue返すのはStringクラスとラッパークラスだけ。
0559デフォルトの名無しさん
2009/05/30(土) 02:35:07標準のAPIじゃサポートしていないみたい。
Font.createFont() で
Font.TRUETYPE_FONT 指定すると
Exception in thread "main" java.awt.FontFormatException: Unsupported sfnt C:\Program Files\Adobe\Reader 8.0\Resource\CIDFont\KozGoProVI-Medium.otf
かといって Font.TYPE1_FONT だと
Exception in thread "main" java.awt.FontFormatException: bad pfa font
gnu のライブラリだと読み込めそうなことも書いてあったけど、詳しく調べてない。
0560474
2009/05/30(土) 03:00:19できました!ありがごうございます
0561デフォルトの名無しさん
2009/05/30(土) 03:11:520562デフォルトの名無しさん
2009/05/30(土) 06:58:15ボタンはフォーカスされた時点でイメージをバッファしてるのでしょうか?
repaint()の前にバッファをクリアするようなプログラムが必要になるのでしょうか?
説明が下手で申し訳ないのですが解決方法を教えていただきたいです。
0563デフォルトの名無しさん
2009/05/30(土) 07:15:10デマぬかすな。Date, Locale, File, URL, ... いくらでもあんだろ。
0564デフォルトの名無しさん
2009/05/30(土) 07:16:19おまえアセンブラも CGI も触ったことないだろ。
0565デフォルトの名無しさん
2009/05/30(土) 07:22:30お前馬鹿って言われてるだろ。
言われてないなら可哀相な目で見られていることに気が付いてないだけだ。
0566デフォルトの名無しさん
2009/05/30(土) 07:23:290567デフォルトの名無しさん
2009/05/30(土) 12:03:35IDEはNULLで初期化してくださいと文句を言ってくるのですか?
0568デフォルトの名無しさん
2009/05/30(土) 12:48:03変数は、初期化されるものとされないものがある。
ローカル変数は初期化されない。
資料 java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.12.5
>A local variable (§14.4, §14.14) must be explicitly given a value before it is used
0569デフォルトの名無しさん
2009/05/30(土) 13:20:50単に作り方を間違えてる。
class MyPanel extends JPanel {
ArrayList<Point> points = new ArrayList<Point>();
public MyPanel() {
addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
points.add(e.getPoint());
repaint();
}
});
}
public void paint(Graphics gr) {
int cnt = points.size();
int[] xp = new int[cnt];
int[] yp = new int[cnt];
int p = 0;
for (Point pnt : points) {
xp[p] = pnt.x;
yp[p] = pnt.y;
p++;
}
gr.clearRect(0, 0, getWidth(), getHeight());
gr.setColor(Color.BLUE);
gr.drawPolyline(xp, yp, cnt);
}
public void clearLines() {
points.clear();
repaint();
}
}
0570デフォルトの名無しさん
2009/05/30(土) 13:21:05MyPanel pan = new MyPanel();
JButton btn = new JButton("clear");
public TestMain() {
add(pan, BorderLayout.CENTER);
btn.addActionListener(this);
add(btn, BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e) {
pan.clearLines();
}
public static void main(String[] args) {
TestMain test = new TestMain();
test.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
test.setSize(500, 500);
test.setTitle("TestForm");
test.setVisible(true);
}
}
0571デフォルトの名無しさん
2009/05/30(土) 13:36:40そうなのね、知りませんでした
ありがとう
0572デフォルトの名無しさん
2009/05/30(土) 14:37:390573デフォルトの名無しさん
2009/05/30(土) 14:38:520574デフォルトの名無しさん
2009/05/30(土) 15:26:22ありがとうございます
java se6 api リファレンスのjava.io.fileを探しましたが、私の目は節穴だったようです
0575デフォルトの名無しさん
2009/05/30(土) 19:09:33ありがとうございます。
根本から間違えていたみたいですね。
参考になります。
0576デフォルトの名無しさん
2009/05/30(土) 20:37:08↑サイトを参考に横棒グラフを表示するプログラムを作っているのですが
グラフ選択画面→グラフ表示 を
プログラムを実行したらすぐに横棒グラフを表示するようにするには
mainの部分をどのようにしたらいいでしょうか?
0577デフォルトの名無しさん
2009/05/30(土) 20:38:540578576
2009/05/30(土) 21:39:15こちらもmainの部分をどう作ったらいいのか困っています。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
class bar_chart extends Applet {
final static int data_set[] = { 50, 85, 32, 65 };
final static String data_label[] = { "93", "94", "95", "96" };
int Graph_offset = 20;
int Graph_Height = 150;
int Y_Tick_Height = Graph_Height / 5;
int Graph_Width = 240;
int X_Tick_Width = Graph_Width / data_set.length;
public void paint(Graphics g)
{
g.setColor(Color.black);
g.drawLine(Graph_offset + Graph_Width, Graph_offset,
Graph_offset + Graph_Width, Graph_offset + Graph_Height);
for(int i=0; i<=5; i++)
{
g.drawString(String.valueOf(i*20),
Graph_offset + Graph_Width + 10,
Graph_offset + Graph_Height -(i*Y_Tick_Height));
0579デフォルトの名無しさん
2009/05/30(土) 21:41:51Graph_offset + Graph_Height -(i*Y_Tick_Height),
Graph_offset + Graph_Width + 5,
Graph_offset + Graph_Height -(i*Y_Tick_Height));
}
g.drawLine(Graph_offset,
Graph_offset + Graph_Height,
Graph_offset + Graph_Width,
Graph_offset + Graph_Height);
for(int i=0; i<data_set.length; i++)
{
g.drawString(data_label[i],
Graph_offset + X_Tick_Width*i + X_Tick_Width/2,
Graph_offset + Graph_Height + 20);
g.drawLine(Graph_offset + X_Tick_Width*i +
X_Tick_Width/2,
Graph_offset + Graph_Height,
Graph_offset + X_Tick_Width*i + X_Tick_Width/2,
Graph_offset + Graph_Height + 5);
}
g.setColor(Color.red);
for(int i=0; i<data_set.length; i++)
{
int bar_height = data_set[i] * Graph_Height / 100;
g.fillRect(Graph_offset + X_Tick_Width*i + X_Tick_Width/4,
Graph_offset + Graph_Height - bar_height,
X_Tick_Width/2, bar_height);
}
}
}
0580デフォルトの名無しさん
2009/05/30(土) 21:59:58repaint() すると update() -> paint() と呼ばれる。
public class ChartMain extends javax.swing.JFrame {
public ChartMain() {
add(new bar_chart(), BorderLayout.CENTER);
repaint();
}
public static void main(String[] args) {
ChartMain test = new ChartMain();
test.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
test.setSize(300, 250);
test.setTitle("ChartTest");
test.setVisible(true);
}
}
0581デフォルトの名無しさん
2009/05/30(土) 22:21:44動くものを書く程度までの実力はつきました。
あとわかるのは拡張forやlistなど
特別なJavaの機能やオブジェクト指向について学びたいのですがオススメの書籍はありませんか?
今はEffective Javaがいいのかな?っと思っています
0582デフォルトの名無しさん
2009/05/30(土) 22:37:20まあやさしいjavaは忘れることだ
0583デフォルトの名無しさん
2009/05/30(土) 22:48:53基本押さえたら次は実践だろー
何か興味のあるものは無いのか?
HTTPget でも自作してみるとか、そこからリンク辿って自動的にダウンロード
してみるとか、ミニゲーム作ってみるとか、科学技術計算に耽溺してみるとか。
0584デフォルトの名無しさん
2009/05/30(土) 23:12:51Amazon.co.jp: コアJava2〈Vol.1〉基礎編 (サンソフトプレスシリーズ): ケイ・S. ホーストマン, ゲイリー コーネル, Cay S. Horstmann, Gary Cornell, 福龍興業: 本
これですね
立ち読みしてきます
>>583
実践って言うほどじゃないんですが、TwitterのBOTをTwitter4j使った遊んでいます
0585デフォルトの名無しさん
2009/05/30(土) 23:37:27ばっちりじゃん。目標があるなら好きなように遊んでいれば問題ないと思ってる。
0586デフォルトの名無しさん
2009/05/30(土) 23:57:44表示できました!本当にありがとうございました!!
0587576
2009/05/31(日) 00:39:10アプレット版の方は表示できたのですが
ttp://www.sist.ac.jp/~suganuma/cpp/4-bu/20-sho/graph/main/graph.txt
↑を参考にして作った方のプログラムのmainの部分で
public class ChartMain extends javax.swing.JFrame {
public ChartMain() {
add(new BarGraph(), BorderLayout.CENTER);
repaint();
}
public static void main(String[] args) {
String title[]; // グラフ,x軸,及び,y軸のタイトル
String g_title[]; // 凡例(グラフの内容)
String x_title[]; // x軸への表示
double x_scale[]; // x軸目盛り
double y_scale[]; // y軸目盛り
double data_x[][], data_y[][]; // データ
・・・具体的なデータの入力・・・・
BarGraph gp = new BarGraph(title, g_title, x_title, y_scale, 0, data_y, true, true);
ChartMain test = new ChartMain();
test.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
test.setSize(300, 250);
test.setTitle("ChartTest");
test.setVisible(true);
}
}
をjavacすると
シンボルを見つけられません。
シンボル: コンストラクタBarGraph()
場所 :BarGraph の クラス
add(new BarGraph(), BorderLayout.CENTER);
と出てしまうのですがどうすればいいのでしょうか?
0588デフォルトの名無しさん
2009/05/31(日) 00:52:29再提出。
まあ、とりあえず『なげやりな応急手段』としては。
public ChartMain(BarGraph gp) {
add(gp, BorderLayout.CENTER);
repaint();
}
と修正して main() では
ChartMain test = new ChartMain(gp);
0589576
2009/05/31(日) 01:27:05プログラムを実行するとなんとかグラフ表示はできるのですがコマンドプロンプトが
Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.checkNotAwindow(Unknown Source)
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at javax.swing.JFrame.addImp(Unknown Souce)
at java.awt.Container.add(Unknown Source)
at ChartMain.<init>(ChartMain.java:java:8)
at ChartMain.main(ChartMain.java:77)
と出るのですがどうすれば・・・
8:add(gp, BorderLayout.CENTER);
77:ChartMain test = new ChartMain(gp);
0590デフォルトの名無しさん
2009/05/31(日) 01:51:03BarGraph の継承元が Frame になってる。
こいつを bar_chart と同じく Applet に変更。
0592デフォルトの名無しさん
2009/05/31(日) 02:08:12Applet も Frame も Container を先祖に持っていて、その更に祖先は Component
なんだけど、Frame の親が特殊で Window なんだ。
こいつは Container に add しようとすると
private void checkNotAWindow(Component comp){
if (comp instanceof Window) {
throw new IllegalArgumentException("adding a window to a container");
}
}
と例外を吐く。
0593デフォルトの名無しさん
2009/05/31(日) 02:17:45スレッドを生成してrunメソッドでObjectInputStreamのreadObjectを使って受信しているのですがスレッドを例外の発生なしで強制終了したいときにはどうしたらいいしょうか?
0594デフォルトの名無しさん
2009/05/31(日) 02:27:27読み込みで readObject() が wait してるんだろうから、どのみち例外は起こる。
というか、起こらなかったら不味くはないか?読み込めたと勘違いしそうだから。
ということで、例外は起こるもの(実際起こってるし)として処理すればいいだけ。
0595デフォルトの名無しさん
2009/05/31(日) 02:45:10この場合、ObjectInputStreamはcloseしなくてもいいですか?
0596デフォルトの名無しさん
2009/05/31(日) 02:53:49だったら、気にすることもない。
試しにクローズしてもいいだろうし。
終わらないなら、読み込み終わるまで放置していればいいし。
0597デフォルトの名無しさん
2009/05/31(日) 14:50:300598デフォルトの名無しさん
2009/05/31(日) 15:05:21Eclipseとかでライブラリのjarに対応して設定すると、classとソースコードを連動
してくれる。
よく配布ライブラリにはxxxx-sources.jarってあるけど、そういうこと。
0599デフォルトの名無しさん
2009/05/31(日) 15:14:00public void setUrl(String url) throws MalformedURLException {
URL checkUrl = new URL(url);
this.url = url;
}
ちゃんとしたURLでないと、インスタンスが生成されず例外が発生するのでこの様に書きました
しかし、それだけのためにオブジェクトを生成するのはかなり抵抗があります
そこで、もうちょっとしっかりとした書き方を教えて欲しいのですが... 教えてエロい人!!
0600デフォルトの名無しさん
2009/05/31(日) 15:46:08最初Enter押すとStart、次Space押すとEnd.と出るつくりです。
import java.awt.*;
import java.awt.event.*;
public class test extends Frame implements Runnable,KeyListener {
int k;
public void keyPressed(KeyEvent e) {
k=e.getKeyCode();
if (k==10) {
System.out.println("Start");
keyin();
}
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
public static void main(String[] args) {
test f = new test();
f.setBounds(10, 10, 300, 200);
f.addKeyListener(f);
f.setVisible(true);
f.start();
}
public void start() {
Thread t = new Thread(this);
t.start();
}
public void run() {
//keyin();
}
0601デフォルトの名無しさん
2009/05/31(日) 15:46:48public void keyin() {
int d=0;
while (d==0) {
try {
Thread.sleep(1);
if (k==32) { d=1; System.out.println("End."); }
} catch (Exception e) {}
}
}
}
keyPressedから呼ぶとキー入力不能になります。run()からなら正常に動きます。
keyPressedの中でさらにキー入力受け付けるにはどうすればいいでしょうか?
0602デフォルトの名無しさん
2009/05/31(日) 15:51:39>それだけのために
URLの判定って、それだけでものごっつい処理だったりするから・・・
自力でURL(RFC2396)を正規表現でチェックしたら・・・軽く死ねます。
厳密にチェックしたければ、
1. URISyntaxException をハンドリングしつつ URI インスタンスを生成する。
2. isAbsolute() であることを確認。
3. toURL()でURL生成。
0603デフォルトの名無しさん
2009/05/31(日) 16:01:58そりゃイベント処理で無限ループさせてたら次のイベントは取れないわな・・・
イベント駆動ってことを考えて再設計しなされ。
具体的には、イベント処理関数内部でループすんな!
0604デフォルトの名無しさん
2009/05/31(日) 16:18:340606デフォルトの名無しさん
2009/05/31(日) 16:42:370607デフォルトの名無しさん
2009/05/31(日) 21:07:06質問をさせていただきます。
下記のことをしたいと思っています。
�@フレームは、GridBagLayoutを設定
�Aフレーム上に3つのパネルをセットする
�Bパネル1はsetboundsを設定
�Cパネル2、3は、GridBagLayoutを設定
自分でソースを組んでみたのですが、パネル1が表示されません。
パネル2、3は表示がされるのですが・・・
GridBagLayoutのフレーム上で、setboundsのパネルを
配置することができないなんてありませんよね?
0608デフォルトの名無しさん
2009/05/31(日) 21:37:410609デフォルトの名無しさん
2009/05/31(日) 22:23:47GridBagLayout gbl = new GridBagLayout();
f.setLayout(gbl);
GridBagConstraints gc = gbl.getConstraints(f);
gc.insets = new Insets(5, 5, 5, 5);
gc.fill = GridBagConstraints.BOTH;
gc.weightx = 1.0;
gc.weighty = 1.0;
gc.gridwidth = GridBagConstraints.REMAINDER;
ってGridBagLayout配置した上に
JPanel pan = new JPanel();
pan.setLayout(null);
pan.setBorder(BorderFactory.createLineBorder(Color.red, 5));
って、nullレイアウトの子パネルpanを置いて、そこに孫パネルsubpanを
JPanel subpan = new JPanel();
subpan.setBorder(BorderFactory.createLineBorder(Color.green, 5));
subpan.setBounds(10, 30, 100, 30);
pan.add(subpan);
f.add(pan, gc);
0610デフォルトの名無しさん
2009/05/31(日) 22:25:18// panel 2
pan = new JPanel();
pan.setBorder(BorderFactory.createLineBorder(Color.yellow, 5));
GridBagLayout subgbl;
GridBagConstraints subgc;
subgbl = new GridBagLayout();
pan.setLayout(subgbl);
subgc = subgbl.getConstraints(pan);
subgc.insets = new Insets(5, 5, 5, 5);
subgc.fill = GridBagConstraints.BOTH;
subgc.weightx = 1.0;
subgc.weighty = 1.0;
subpan = new JPanel();
subpan.setBorder(BorderFactory.createLineBorder(Color.green, 5));
pan.add(subpan, subgc);
subpan = new JPanel();
subpan.setBorder(BorderFactory.createLineBorder(Color.green, 5));
subgc.gridwidth = GridBagConstraints.REMAINDER;
pan.add(subpan, subgc);
subpan = new JPanel();
subpan.setBorder(BorderFactory.createLineBorder(Color.green, 5));
pan.add(subpan, subgc);
f.add(pan, gc);
0611デフォルトの名無しさん
2009/05/31(日) 22:26:33// panel 3
pan = new JPanel();
pan.setBorder(BorderFactory.createLineBorder(Color.blue, 5));
subgbl = new GridBagLayout();
pan.setLayout(subgbl);
subgc = subgbl.getConstraints(pan);
subgc.insets = new Insets(5, 5, 5, 5);
subgc.fill = GridBagConstraints.BOTH;
subgc.weightx = 1;
subgc.gridheight = 2;
subgc.weighty = 1;
subpan = new JPanel();
subpan.setBorder(BorderFactory.createLineBorder(Color.green, 5));
pan.add(subpan, subgc);
subpan = new JPanel();
subpan.setBorder(BorderFactory.createLineBorder(Color.green, 5));
subgc.weighty = 0;
subgc.gridwidth = GridBagConstraints.REMAINDER;
subgc.gridheight = 1;
pan.add(subpan, subgc);
subpan = new JPanel();
subpan.setBorder(BorderFactory.createLineBorder(Color.green, 5));
pan.add(subpan, subgc);
f.add(pan, gc);
適当なパネル追加が笑える。
0612デフォルトの名無しさん
2009/05/31(日) 22:30:14public static void main(String args[]) {
JFrame f = new JFrame("GridBag Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addPanels(f);
f.setBounds(100, 100, 800, 400);
f.setVisible(true);
}
addPanels() に上のコードを書けば良い。
0613デフォルトの名無しさん
2009/05/31(日) 22:39:17public void Withdrawal(xxx) //親のメソッドをオーバライド
if(accountMethod(aaa)) { //accountMethodは親のメソッドをオーバライド
〜
public class Mousugu6gatu {
public static void main(String args[]) {
NewAccount a1 = new NewAccount(yyy)
a1.Withdrawal(zzz); //ココ
このようなときに、NewAccountクラスのインスタンスを生成して、
変数a1に参照が入っていて、ココでは、a1オブジェクトのWithdrawalメソッドを
呼び出しているのですけど、Withdrawalメソッドにの中にある、
accountMethod(aaa)の記述は、
a1.accountMethod(aaa)としなくても良い理由が知りたいのです。
教えて下さい。
0614デフォルトの名無しさん
2009/05/31(日) 23:01:37最近は何で連携するのが流行でしょうか。
昔はCORBAなんかで連携してましたが、最近の流行を知りたいです。
JavaのシステムからC++のシステムにデータをわたし、加工したものを
受け取りたいのです。
同期的、非同期のどちらも可能である方法が知りたいです。
0615デフォルトの名無しさん
2009/05/31(日) 23:32:12インスタンスのメソッドの中から同じインスタンスのメソッドを呼び出してるだけ
だから。
内部的には、インスタンスメソッドにはそのインスタンスへの参照が暗黙的に
渡され、それを介してインスタンスメソッドにアクセスする。これがthis。
ただ、言語規定を漁ってみたけど記述がみつからん。_| ̄|○
0616デフォルトの名無しさん
2009/05/31(日) 23:47:56に"The invocation is set up by first pushing a reference to the current instance, this, ..."
とthis参照に関しては明記されてた。
ところで、614 はパスw 最近のなんてわっかんねえし。
0617デフォルトの名無しさん
2009/06/01(月) 00:01:29ご返答ありがとうございます。
サンプルまで作っていただいてすみません。
私のほうで作成したサンプルを書いてみます。
ボタンを押すと、画面が開かれる仕様ですが、
その開かれる画面の設定内容です。
メインパネル1の上に置いたtxt_gyomu_cdが
どうやっても表示されません。
コーディングがどこかおかしいのでしょうか
0618617
2009/06/01(月) 00:02:39//メインパネル1 START
private JPanel mainPanel1 = new JPanel();
private JTextField txt_gyomu_cd = new JTextField();
public void showFrame() throws Exception{
GridBagLayout layout = new GridBagLayout();
// フレームの定義 start
JFrame frame = new JFrame();
Container con = frame.getContentPane();
con.setLayout(layout);
GridBagConstraints con_gbc = new GridBagConstraints();
// フレームの定義 end
// メインパネル1 start
mainPanel1.setLayout(null);
txt_gyomu_cd.setBounds(10, 10, 600, 600);
txt_gyomu_cd.setVisible(true);
mainPanel1.add(txt_gyomu_cd);
0619617
2009/06/01(月) 00:04:21con_gbc.gridx = 0;
con_gbc.gridy = 0;
con_gbc.gridwidth = 1;
con_gbc.gridheight = 1;
layout.setConstraints(mainPanel1, con_gbc);
con.add(mainPanel1);
// コンテナにセット end
frame.pack();
frame.setVisible(true);
}
}
0620デフォルトの名無しさん
2009/06/01(月) 00:49:26ありがとうございました。
0621デフォルトの名無しさん
2009/06/01(月) 01:03:43con_gbc.fill = GridBagConstraints.BOTH;
con_gbc.weightx = 1.0;
con_gbc.weighty = 1.0;
con_gbc.gridwidth = GridBagConstraints.REMAINDER;
を追加。
0622デフォルトの名無しさん
2009/06/01(月) 08:58:26OpenGLはあるようなんですけど。
0623デフォルトの名無しさん
2009/06/01(月) 12:04:17リストに表示される文字列を入力していくと、自動で選択してくれる機能
お願いします。
0624デフォルトの名無しさん
2009/06/01(月) 12:17:07javaにこだわらずC#使ったらいいんじゃね?
0625デフォルトの名無しさん
2009/06/01(月) 12:54:53==だと参照の同一性だけの比較なのでequals()を使えば、
内容に比較が出来ると思っていたのですけど、
今読んでいる本では、equals()も==と同じように、参照の同一性しか
比較できないと書いてあり、内容を比較したいなら、equals()メソッドを
オーバーライドしないといけないと書いてあります。
たかだか、比較するだけなのに、どうして、このように
二段階、三段階の複雑怪奇なのでしょうか。
真実は、どうなっているのでしょうか。
0626デフォルトの名無しさん
2009/06/01(月) 13:26:43教えて
xがー2の時yが3.02
−1の時0.98
0の時1.22
1の時2.16
2の時2.61 の時のです
出来ればソース全文書いてください
0627デフォルトの名無しさん
2009/06/01(月) 13:34:52参照の同一性と中身の同一性、好きな方で比較できると思えばいいんじゃね?
0628デフォルトの名無しさん
2009/06/01(月) 15:12:55乞食行為は宿題スレでやってくれ
0629デフォルトの名無しさん
2009/06/01(月) 17:21:07java.awt.im.*をインポートして,入力された日本語を漢字へ変換したいのですが
使い方がまったく分かりません。
どうすればインプットメソッドを用いた漢字変換ができるのでしょうか
簡単にでいいのでどなたか教えてくれませんか?
0630デフォルトの名無しさん
2009/06/01(月) 17:33:230631デフォルトの名無しさん
2009/06/01(月) 20:45:54でも実際に実装する時には、どのようなタイミングで使えばいいのかわかりません
教えてエロい人!!
0632デフォルトの名無しさん
2009/06/01(月) 21:13:09http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/imf/api-tutorial.html
のサンプルが実例なんだけど、標準の漢字変換に任せたほうが無難だと思うなぁ。
絶対、やっちゃった実装だろ、これは・・・
0633デフォルトの名無しさん
2009/06/01(月) 21:25:22「たかだか、比較するだけなのに」がド甘い考え。
デフォルトだと、equals()は
[Object.java]
public boolean equals(Object obj) {
return (this == obj);
}
となっているので、実質==と同じ。
これじゃ参照の同一性しか比較できないから、
[String.java]
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
// ・・・・・・・略
return true;
}
}
return false;
}
というようにオーバーライドしてある。
オブジェクトの中身なんて実装者にしかワカランから、仕方ない。
0634デフォルトの名無しさん
2009/06/01(月) 22:57:110635デフォルトの名無しさん
2009/06/02(火) 10:15:41必要になったら使う。
配列を置き換えてよいとは言わんが、適時積極的に使って良いもの。
0636デフォルトの名無しさん
2009/06/02(火) 11:26:270637デフォルトの名無しさん
2009/06/02(火) 12:29:06ありがとうございます
参考にします
0638デフォルトの名無しさん
2009/06/02(火) 14:33:04Javaプログラミングの経験はそれなりにあるのですが、
ドラッグ&ドロップは使ったことがありませんでした。
たまたまちょっとやってみようと思い、参考書(グラフィックJava2 vol1.AWT編 ASCII)
のコードを動かしてみました。
AWTのLISTから別のLISTに項目をコピーするという簡単なものです。
private List dropList = new List();
private DropTarget dropTarget = new DropTarget(
dropList,
DnDConstants.ACTION_COPY_OR_MOVE,
this
);
thisはDragGestureListener,DragSourceListener,DropTargetListener
をインプリメントしたFrameです。
で、プログラムは想定どおり動くのですが、dropTargetのハンドルをどこにも”登録”らしきことをしていない(eclipseではこの変数使ってないよマークが出る)
のに動く(DropTargetDropEventがちゃんとdropTargetのことを知っている)のがとても疑問です。
もっと一般的な情況を想定してリフレクションかなんかで処理しているのですかね?
0639デフォルトの名無しさん
2009/06/02(火) 15:26:19DropTagetのコンストラクタの中に addDropTargetListener(dtl); とあるけど、これ?
0640デフォルトの名無しさん
2009/06/02(火) 15:41:59ちなみに長くなるので省略してしまったのですが、DragSourceのインスタンスもDragGestureRecognizerのインスタンスもプログラム中で使用していません。(DragSourceのインスタンスはDragGestureRecognizerを生成するために一回だけ使いますが)
ソース、ターゲット、ジェスチャーの各インスタンスはFrameを拡張したクラスの中で生成されたきりです。
置きっぱなしなのに、ちゃんと動いているのが不思議だなと。
0641デフォルトの名無しさん
2009/06/02(火) 15:46:33のパラメータにソースやターゲットとなるコンポーネントをのせてるところが、
ミソののでしょうが。
0642デフォルトの名無しさん
2009/06/02(火) 15:47:43連投&字の間違い、すみません。
0643デフォルトの名無しさん
2009/06/02(火) 16:57:52public class Sample {
static String a="abc";
static String b;
public static void main(String[] args) {
b="";
b=b+'a'+'b'+'c';
if(b==a){
System.out.println("ok");
}
}
}
0644デフォルトの名無しさん
2009/06/02(火) 17:01:52okが出るように書かれてないから。
0645デフォルトの名無しさん
2009/06/02(火) 17:04:33>>1
0646デフォルトの名無しさん
2009/06/02(火) 17:46:470647デフォルトの名無しさん
2009/06/02(火) 18:00:41==で比較できない!って他のクラスとかでも言い出す奴が出だすし。
0648デフォルトの名無しさん
2009/06/02(火) 18:04:31参照型じゃなくて基本型でも良かったんじゃないかな。
Javascriptみたいに。
0649デフォルトの名無しさん
2009/06/02(火) 18:07:57String#internについて調べよう
0650デフォルトの名無しさん
2009/06/02(火) 18:13:29そこまでわかった上で言う人間ばかりだったらそれで良いのだろうけどな。
0652デフォルトの名無しさん
2009/06/02(火) 19:37:10ありがとうございました。
0653デフォルトの名無しさん
2009/06/02(火) 20:20:57これはデバッグする時に使うって本当?
0654デフォルトの名無しさん
2009/06/02(火) 20:31:040655デフォルトの名無しさん
2009/06/02(火) 20:51:18java.lang.Objectのclone()はシャローコピーですが、docには
「通常、このメソッドにより返されるオブジェクトは、このオブジェクト (複製されている)から独立している必要があります。(後略)」とあります。
ということは、java.lang.Object以外のクラスのclone()は、ディープコピーになるようにオーバーライドするのが好ましいと考えていいんでしょうか?
0656デフォルトの名無しさん
2009/06/02(火) 21:04:080657デフォルトの名無しさん
2009/06/02(火) 21:36:11メソッドからはフィールドにthisなしでアクセスできるのに、
なぜコンストラクタからはthisがないとアクセスできないのでしょうか。
c++ではメソッド、コンストラクタ共にthisなしで
フィールドにアクセスできたのですが・・。
0658デフォルトの名無しさん
2009/06/02(火) 21:38:16なんでっていわれてもそういうもんだからしかたない
0659デフォルトの名無しさん
2009/06/02(火) 21:42:07引数と区別するためにthisを付けてるのと勘違いしてないか?
0660デフォルトの名無しさん
2009/06/02(火) 21:47:21その通りでした。
くだらない質問すみませんでした。
0661デフォルトの名無しさん
2009/06/02(火) 21:55:23Beanの追加と削除メソッドはあるんだけど
更新はBeanの変数を直接弄る
これってありなんですか?
DTOの概念だと更新メソッドを追加してDTO内でBeanの変数を弄らないと駄目だと思うんですが、、
0662デフォルトの名無しさん
2009/06/02(火) 21:56:31ありがとうございます。
0663デフォルトの名無しさん
2009/06/02(火) 22:07:39このプログラムのdata_set[]の配列にmain関数から、もしくは引数で数値を渡すには
どうすればいいでしょうか?
0665デフォルトの名無しさん
2009/06/02(火) 22:15:50貴方は何処で其れを見たのだ
0666デフォルトの名無しさん
2009/06/02(火) 22:47:43適当にネットをさまよっていただけです
そこに、デバッグがなんちゃらって書いていたので
0667デフォルトの名無しさん
2009/06/02(火) 22:59:590668デフォルトの名無しさん
2009/06/02(火) 23:10:02じゃあJTableのデフォルトレンダラはセルの内容表示にtoStringを使ってるから
JTableを使用する=デバッグしてる時ってこと?
0669デフォルトの名無しさん
2009/06/02(火) 23:13:28今後におきましては、Object#toStringはデバッグ目的以外での使用をお控え下さい。
0670デフォルトの名無しさん
2009/06/02(火) 23:15:260671デフォルトの名無しさん
2009/06/02(火) 23:16:39toStringはオブジェクトの文字列表現を返すメソッドだから、
端的にオブジェクトの内容を示すようにオーバーライドしておくのは特別なことではない。
オブジェクトの内容が見えるからデバッグ「にも」使えるということであって、
デバッグ「にだけ」使うという意味に取ったのならそれはもったいない使い方。
0672665
2009/06/02(火) 23:22:25今日のお前らはいつもより親切だな
0673デフォルトの名無しさん
2009/06/02(火) 23:36:05また、はまってしまいました。
パネルを1〜4まで作成し、それをGridBagLayoutのframeの上に配置
しているのですが、パネル4をframeに追加すると、
それまで出ていたパネル1とパネル2が表示されなくなってしまいます。
自分なりにプログラムを簡素化したりしてみたのですが、どうにも
わかりません。
大変申し訳ないのですが、見ていただいてもよろしいでしょうか
0674デフォルトの名無しさん
2009/06/02(火) 23:42:02また、はまってしまいました。
パネルを1〜4まで作成し、それをGridBagLayoutのframeの上に配置
しているのですが、パネル4をframeに追加すると、
それまで出ていたパネル1とパネル2が表示されなくなってしまいます。
自分なりにプログラムを簡素化したりしてみたのですが、どうにも
わかりません。
大変申し訳ないのですが、見ていただいてもよろしいでしょうか
0675デフォルトの名無しさん
2009/06/02(火) 23:43:04//メインパネル1 START
private JPanel mainPanel1 = new JPanel();
private JLabel lbl_title1 = new JLabel("あああ");
//メインパネル1 END
//メインパネル2 START
private JPanel mainPanel2 = new JPanel();
private JLabel lbl_title2 = new JLabel("いいい");
//メインパネル2 END
//メインパネル3 START
private JPanel mainPanel3 = new JPanel();
private JLabel lbl_title3 = new JLabel("ううう");
//メインパネル3 END
//メインパネル4 START
private JPanel mainPanel4 = new JPanel();
private JLabel lbl_title4 = new JLabel("えええ");
//メインパネル4 END
static DbItem dbObj_item;
static DbCharge dbObj_charge;
static DbMember dbObj_member;
public void showFrame() throws Exception{
GridBagLayout layout = new GridBagLayout();
// フレームの定義 start
JFrame frame = new JFrame();
Container con = frame.getContentPane();
con.setLayout(layout);
0676デフォルトの名無しさん
2009/06/02(火) 23:44:090677デフォルトの名無しさん
2009/06/02(火) 23:44:42// フレームの定義 end
// メインパネル1 start
mainPanel1.setLayout(null);
mainPanel1.setPreferredSize(new Dimension(400,450));
mainPanel1.setOpaque(true);
mainPanel1.setBackground(Color.BLUE);
lbl_title1.setBounds(0, 0, 100, 30);
mainPanel1.add(lbl_title1);
// コンテナにセット start
con_gbc.gridx = 0;
con_gbc.gridy = 0;
con_gbc.gridwidth = 1;
con_gbc.gridheight = 1;
con_gbc.fill = GridBagConstraints.NONE;
con_gbc.weightx = 1.0;
con_gbc.weighty = 1.0;
layout.setConstraints(mainPanel1, con_gbc);
con.add(mainPanel1);
// コンテナにセット end
// メインパネル1 end
0678デフォルトの名無しさん
2009/06/02(火) 23:45:540679デフォルトの名無しさん
2009/06/02(火) 23:47:23問題なのはテンプレ読まない一見の新参が多いことだが
0680673
2009/06/02(火) 23:53:56http://www.dotup.org/uploda/www.dotup.org89178.txt.html
ここにUPしました。
質問内容としては、>>673にありますとおりです。
よろしくお願いいたします。
0681デフォルトの名無しさん
2009/06/02(火) 23:57:36内部エラーが発生します。
長いSQL文が原因かどうかわかりませんが
SQL文を短くすると内部エラーがでません。
なにかアドバイスが頂きたいです。
ODBC経由では実行できてJDBC経由では実行できない
経験があるかたいらっしゃいましたら教えてください。
以上です。
0682デフォルトの名無しさん
2009/06/03(水) 00:01:57> 内部エラー
何で詳細貼らないの?
0683デフォルトの名無しさん
2009/06/03(水) 00:05:23「SQLException(クローズされた接続です。)」ってログは
はいてます。
0684デフォルトの名無しさん
2009/06/03(水) 00:10:57masterとかobjectとかdbとかのパッケージ関係(importとクラス変数)を削ってmainメソッドを追加して、
newしたItem_regのshowFrameを呼んだけど、全部のパネルが表示されたんだが?
あああ、いいい、かかか、さささ×3個の4つでいいんだよね?
0685デフォルトの名無しさん
2009/06/03(水) 00:14:26よくわからんがconnectしてないんじゃ
0686デフォルトの名無しさん
2009/06/03(水) 00:15:09おかしくなるソースを示されるよりも、
理想的にはどういうレイアウトになってほしいのかを言ってくれたほうがいいかもしれん。
0687685さんへ
2009/06/03(水) 00:17:41コネクションは貼れてます。
0688デフォルトの名無しさん
2009/06/03(水) 00:20:23ソースうpできん?
0689688さんへ
2009/06/03(水) 00:32:48UPはできません。すみません
0690デフォルトの名無しさん
2009/06/03(水) 00:41:44・そのSQLは更新系か参照系か
・問題が起きるSQLの直前にConnection#isClosed()でtrueが返ってきてたりしてないか
・そのSQLの実行はStatementによるものか、PreparedStatementによるものか
・実行対象のSQLの大体の文字列長はどれくらいになるのか
0691デフォルトの名無しさん
2009/06/03(水) 00:44:10・使用しているOracleのバージョンは何か
・DBサーバのOSは何か
・クライアント側のJDK/JREのバージョンは何か
0692690さんへ
2009/06/03(水) 00:46:05ステップ実行で追ってみるとその次のexecuteQueryで
SQLEXCEPTIONをスローしてきます。
SQLは、参照系です。
Connection#isClosed()は、まだ試してません。
そうとう長いです。
条件によってSQL文を組み替えるマクロを組んでいるため
いろいろ条件は変わりますがそうとう長いとしかいえないです。
Oracleは10gです。
DBサーバのOSは、WINDOWS XP PROです。
JDKは、1.5.0です。
0693デフォルトの名無しさん
2009/06/03(水) 00:49:20どういうふうにレイアウトされることを想定しているのか分からないので
とりあえずリサイズでいきなり消えたりしないようにするには
mainPanel1.setMinimumSize(new Dimension(400,450));
以下、2〜4のパネルにも設定。
GridBagLayoutのドキュメントをしっかり読むこと
>> この制約オブジェクトに加え、GridBagLayout は、コンポーネントのサイズを決定するために、
>> 各コンポーネントの最小サイズおよび推奨サイズを考慮します。
0694690さんへ
2009/06/03(水) 00:49:59クローズはしてませんでした
0695デフォルトの名無しさん
2009/06/03(水) 00:54:05元となるSQL文、またはPreparedStatementによるsetXXXのパラメータ値をファイルから読んだりはしていない?
ちなみにSQLExceptionが出るのが常に確認できるなら、せめてトレースくらいは貼ってほしい。
これは別に問題なく出せる情報でしょ?
0696デフォルトの名無しさん
2009/06/03(水) 00:55:32> 以下、2〜4のパネルにも設定。
は各パネルの推奨サイズと同じサイズに最小サイズを設定っていう意味ね
0697デフォルトの名無しさん
2009/06/03(水) 01:14:22独立というのは
Object c=o.clone();
のときo.equals(c)がfalseを返すという意味。
それ以上の言及はjavadocではされてないし仕様上cloneはシャローコピーだが実際ディープコピーで実装することもある。
が、それが良いか悪いかは別問題。
0698デフォルトの名無しさん
2009/06/03(水) 01:17:42VBAやってたころ、DAOからADOに切り替えたら結果セットを解放しないで
次のクエリを投げるパターンでコネクションが増えちゃって一時テーブルが
見えなくてエラーになったことはあった。というようなケースも考えられる。
0699デフォルトの名無しさん
2009/06/03(水) 01:20:16Connectionを複数持ってて、実はPreparedStatementを切ったConnection側から生成していたとか・・・
0700デフォルトの名無しさん
2009/06/03(水) 01:27:10一時テーブル作成。
更新クエリ。
参照クエリ。(結果セット戻る)
結果セット読みつつ一時テーブル参照クエリ。
ここで二本目のコネクションが内部的に張られていて、別セッションと見做されて
一時テーブルのオーナーでなくなっていた。
っーように結果セットの方式も関係しているから、聞くだけじゃわかんねー
0701デフォルトの名無しさん
2009/06/03(水) 10:53:55ConnectionPoolingではストアドが実行できないって事。
ストアド用のコネクションを別に張ったらOKだった。
0702デフォルトの名無しさん
2009/06/03(水) 11:33:28これJDK1.6でSynth適用したりしてたら
一部が消えたり、日付のところが消えたり、上手く使えないんだけど
誰か代替出来る物とか修正方法知りませんか。
0703デフォルトの名無しさん
2009/06/03(水) 13:48:32Seasar2
EclipseHTMLEditor
SAStrutsPlugin for Amateras
上の環境で${f:〜}を コンテンツアシスト使って
リスト出そうとしたらぬるぽ出るんだけどそういうもの?
Eclipseログの頭↓
!MESSAGE java.lang.NullPointerException
!STACK 0
java.lang.NullPointerException
at net.sf.amateras.sastruts.SAStrutsUtil.getDisplayProperties(SAStrutsUtil.java:134)
at net.sf.amateras.sastruts.SAStrutsUtil.evalProperty(SAStrutsUtil.java:76)
0704sage
2009/06/03(水) 21:01:32DataInputStream dis = new DataInputStream( FileInputStream("file"));
みたいに、コンストラクタの引数にコンストラクタを入れること、
あるいは、メソッドの引数として戻り値を持ったメソッドを入れることって
何か呼び方がありますか?
入れ子?ネスト?インライン? じゃないんですよね…。
ついでにメリット、デメリットは?
○インスタンスを作らないから速い?
×スタックを消費するから多用すべきではない?
よろしくお願いします。
0705デフォルトの名無しさん
2009/06/03(水) 21:38:17FileInputStreamのインスタンスも普通に作成される
差といえばFileInputStreamを受け取らないぶん
参照カウントが1低いくらいだろ
0706クサれ脳みそ
2009/06/03(水) 21:43:44forループなどで一個ずつ要素を加える以外になにかスマートな方法がありましたら教えていただきたいです。
0707デフォルトの名無しさん
2009/06/03(水) 21:48:520708クサれ脳みそ
2009/06/03(水) 21:53:57うまくいきました。こんな便利なメソッドあったんですね。
0709704
2009/06/03(水) 22:20:29確かにnewしないと
>FileInputStreamのインスタンスも普通に作成される
変数名の無いインスタンスが作成されるってこと?
参照カウント、調べてみます。
ありがとうございました。
0710674
2009/06/03(水) 23:11:03お返事ありがとうございます。
うまくパネルが1〜4まで表示されますか・・・
どうにも私のところではうまく表示されません。
setMinimumSizeも設定してみたのですが、パネル1,2が表示されません。
私のやりたいレイアウトと、現在の状況をBMPファイルにして
UPロダにあげましたので、見ていただくことはできますでしょうか。
◎現在の状況
ttp://www.dotup.org/uploda/www.dotup.org91580.bmp.html
◎やりたいレイアウト
ttp://www.dotup.org/uploda/www.dotup.org91584.bmp.html
やりたいレイアウトの方では、ボタンやラベルは省略してあります。
また、パネル4の色もわかりやすく黒くしてあります。(PG上は青です)
0711デフォルトの名無しさん
2009/06/03(水) 23:23:49現在の状況って最小サイズを設定する前の状況じゃないの?
最小サイズを設定するやり方が分からないならそう言ってくれ
ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/686.java
でとりあえずパネルがいきなり消えたりはしないと思うが
0712デフォルトの名無しさん
2009/06/03(水) 23:29:55消えた行は//package master;なんでパッケージにするのが必要なら気をつけて
面倒だからこっちで試すときはコメントアウトした
0713674
2009/06/03(水) 23:40:12いえ、最小サイズを設定しても状況はかわらなくて困ってます。
ためしに、
ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/686.java
を上書きして試してみても、パネル1と2が表示されません。
ソース上でおかしいところはないように思えるのですが・・・
うーん、なんでなんだろう
0714デフォルトの名無しさん
2009/06/03(水) 23:46:39それが普通に表示されるなら上書きした>>713の手元のソースに原因がある
それさえも駄目なら表示関係の環境のせいかもしれないけどそんなことはあまり起こらなさそう
0715674
2009/06/03(水) 23:52:58なるほど、了解しました。
試してみます。
ちょっと今日はこれでPCを落とさないといけませんので、
明日試してみて、また報告します。
お付き合いいただいてすみません。
ありがとうございました。
0716デフォルトの名無しさん
2009/06/04(木) 02:12:30listの大きさの範囲は0~無限です
どうすればいのでしょうか?
0717デフォルトの名無しさん
2009/06/04(木) 03:16:40大きさ無限のリストなんてありえないわけで
選択する時点でのリストが持っている要素数をList#size()で求めて
RandomクラスなりMath.random()なりを使って0以上要素数未満の整数の乱数値を1個作り
List#get(int)で要素を取得する
使用しているListの実装がInteger.MAX_VALUEより多くの要素を持つようなものなら
たぶんsize()ではなく正確な要素数を返す代替メソッドがあるはずなのでそれを利用し
乱数に関してもその要素数をカバーできるサイズのものを使用する
0718デフォルトの名無しさん
2009/06/04(木) 03:41:23無限リストで疑似乱数でも取得するのかい?
0719デフォルトの名無しさん
2009/06/04(木) 09:30:09を防止する方法って無いですか?
すべての割り算に、分母が0でないかどうかチェックするよう
コーデイングするのは無理です。うっかり忘れてしまうことがあるんです。
特に、外人が書いたコードに多い。つか、外人は0除算の概念が無いのでは?と思うほど。
コンパイラ時に検出・・・とか、
ソースコードのバグ検出ソフトか何かで検出するとか・・・
実行時に例外を発生させるとか・・・
ソースコードの品質を向上させる、何かうまい方法は無いでしょうか?
0720デフォルトの名無しさん
2009/06/04(木) 09:45:50Chuck Norris can divide by zero.
だそうだからその関係かな。
アサーション使ったら?
0721デフォルトの名無しさん
2009/06/04(木) 09:49:12プログラムの構造そのものの問題だと思うよ
0722デフォルトの名無しさん
2009/06/04(木) 10:50:42DBの設計を工夫するとか、いろいろやってみる。
0除算が発生するケースは、そんなに無いと思うけどなあ。
もし一本のプログラムで大量の0除算が想定されるなら
頭で全てのチェックを一括でかけてはじいたらいいかな。
コンパイラオプションでエラーを強化できるけど、
それやると自分のところでは動いても、他の環境では動かないなどの
問題が出てくる。
そのあたりをトータルで考えて対処するのがいいね。
0723デフォルトの名無しさん
2009/06/04(木) 11:16:570724デフォルトの名無しさん
2009/06/04(木) 12:25:57UT ちゃんとやれば OK
0725デフォルトの名無しさん
2009/06/04(木) 12:43:24配列内で重複しているものを整頓するようなプログラムを作りたいんですけどどうしてもうまくいきません
どうすればいいか教えてくれませんか?
0726デフォルトの名無しさん
2009/06/04(木) 12:50:340727デフォルトの名無しさん
2009/06/04(木) 12:50:41まずソートやって、forで先読みで重複分を読み飛ばすロジックを
組めばいい。javaの質問じゃないだろう。
単なるロジックの話だ。
どの言語に限らず最後はロジック力が問われるので頑張ってね。
0728デフォルトの名無しさん
2009/06/04(木) 12:52:50>>727
ありがとうございます
引き続きがんばってみたいと思います
0729デフォルトの名無しさん
2009/06/04(木) 13:14:550730デフォルトの名無しさん
2009/06/04(木) 13:59:26レスありがとうございます。
もちろん、自分のコーディングしたところは0除算のチェックくらいしてるんですが、
問題はチャックノリスの野郎たちが書くコードなんです。
せかく0除算チェックを入れたのに、いつのまにかオーバーライドで別のメソッドをこしらえて
あいかわらず平気で0除算しやがるんです。
javaインタプリタは0で除算すると Infinity という値を返すように実装されているようです。
つまり、javaインタプリタは0チェクしてるわけです。チェックしてるのに平気で嘘の答えを返すんです。
ここで何らかのExceptionを発生させるようなオプションなどがあれば
0除算のコードを特定できるはず。
・・・そんな機能って無いですか???
0731デフォルトの名無しさん
2009/06/04(木) 14:34:27整数だけならArithmetricExceptionがあるんだけどな
0732デフォルトの名無しさん
2009/06/04(木) 16:07:53俺はjUnitと併せて、Coberturaを愛用してる。
ttp://cobertura.sourceforge.net/
ユニットテストでのテスト漏れとか、
条件分岐でテストしきれていない箇所なんかが検出されてなかなか便利。
他に、これと同様以上の機能をもったツールって無いかな。
0733デフォルトの名無しさん
2009/06/04(木) 16:27:260734デフォルトの名無しさん
2009/06/04(木) 16:51:54夜間バッチでAntからJUnitの自動試験を実行してXMLでログ吐いて、
そのログをjunitreportで可視化してるんだけど、
それができるんなら入れてみたいな。
0735デフォルトの名無しさん
2009/06/04(木) 17:37:40djUnitの紹介ありがとう。
さっそく入れてみた。なかなかいいねぇ。
Eclipse上でカバレッジが完結できるのがいい。
動作速度も、coberturaより速い感じ。
ただ、UTF-8のソースコードからのレポートをエクスポートしたら
日本語のコメントが文字化けするみたい。
それ以外は問題なさげ。Coberturaと併用してみる。
>>734
coberturaはantタスクで動かせるから、バッチでレポート出力できるよ。
出力形式はXMLとHTML。
0736デフォルトの名無しさん
2009/06/04(木) 22:07:57間違えて0でない値で除算している可能性もあるに違いない
0737デフォルトの名無しさん
2009/06/04(木) 22:17:040除算チェックとかInfinityが嘘の答えとか
釣りに反応した俺がくやしい
0738デフォルトの名無しさん
2009/06/04(木) 22:43:280739デフォルトの名無しさん
2009/06/05(金) 00:59:57String test = null;
while((test = br.readLine()) !=null){
System.out.println(test)
}
スコープの内側だと当然readLineで読んだ物が入って出力されるけど、
スコープの外側でtestに入れた物を参照したいが出来ない。
読み出す方法あります?
0740デフォルトの名無しさん
2009/06/05(金) 01:23:01自己解決した
結局>>739だと読まれるたびに消えるから(ryってことですよね
0741デフォルトの名無しさん
2009/06/05(金) 01:40:22本当に(変数の)スコープの外側で参照するようなコードを書いたら、
実行段階でなくコンパイル段階でエラーになる。
0742デフォルトの名無しさん
2009/06/05(金) 10:26:58こんな感じでループ使う以外のやり方ってありますか?
byte src[] = {0x7F, 0x7F, -0x80, -0x7F};
int dst[] = new int[src.length];
for(int i=0; i<src.length; i++){
dst[i] = src[i];
}
逆に、int配列の各要素の下位8itを
byte配列に詰め替えるってこともやりたいのですが、
現状はbyte値に & 0xFFをおこないながら、
ループで回してます。
0743デフォルトの名無しさん
2009/06/05(金) 13:52:48それでいいよ。何か不具合でもあるの?
0744デフォルトの名無しさん
2009/06/05(金) 16:03:41下記のような機能にしたいです。
・適当な空いてるポート(xxxx)をリスンする。
・Httpリクエストのヘッダに、パラメータを付加する。
・レスポンスは特になにもする必要はない。
要は、IE等任意のブラウザで、プロキシをlocalhost:xxxxに設定すれば常にリクエストヘッダ(クエリストリング等では×)に、パラメータが付加されてWebサーバに渡される、というのが目的です。
Fiddlerでカスタムルールを使う等すれば機能的には十分なのですが、作ってみたく、足がかり的なヒントをいただけたら幸いです。
よろしくお願いいたします。
0745デフォルトの名無しさん
2009/06/05(金) 17:11:21Apache MINA使うのはどうだろう?
exampleに、proxy serverのコードがあった気がする。
0746デフォルトの名無しさん
2009/06/05(金) 17:14:45rubyのWEBrickってライブラリを使えば
10行くらいでプロキシが作れる。
ってのはこのスレ的にNGなんだろうな。
0747デフォルトの名無しさん
2009/06/05(金) 19:12:080748デフォルトの名無しさん
2009/06/05(金) 19:40:50まだ一人でコードは書けないですけど他人のコードは
苦労しつつも読めるようになりました。
一重にこの掲示板のご教授のたまものです。
0749デフォルトの名無しさん
2009/06/05(金) 20:10:07Threadクラスのコンストラクタに自分を渡してnewしてる。
0750デフォルトの名無しさん
2009/06/05(金) 20:52:400751デフォルトの名無しさん
2009/06/05(金) 20:53:57テストソースを書く際にはDJUnitTestCaseを継承して書くと思うんですが、
要するにJUnit 4.x系の書き方はできないってことでしょうか?
@BeforeClassや@AfterClass、@Beforeと@Afterも動いてくれないみたいですが・・・。
0752デフォルトの名無しさん
2009/06/06(土) 02:20:05★★ Java の宿題ここで答えます Part 67 ★★
0753デフォルトの名無しさん
2009/06/06(土) 11:14:15http://journal.mycom.co.jp/articles/2007/04/28/rome/001.html
ここを参考にしてRSSのtitleやURL記事タイトルを取得できたのですが、
本文を取得することができません
これは別途手段を用意してURLから本文を抽出するしかないのでしょうか?
0754デフォルトの名無しさん
2009/06/06(土) 11:58:54本文、というのが RSS の話ならば、ですが。
こういう時の APIdoc です。
ROME, RSS and atOM utilitiEs for Java 1.0RC1 API
ttp://www.nilab.info/docs/rome/1.0RC1/
ttp://www.nilab.info/docs/rome/1.0RC1/com/sun/syndication/feed/synd/SyndEntry.html
0755デフォルトの名無しさん
2009/06/06(土) 12:21:10ぐぐると対応方法が結構な数出てくるわけだが。
0756デフォルトの名無しさん
2009/06/06(土) 12:31:33docを見てgetできるものすべてgetしてみたのですが、
取得したいものが得られませんでした
なので取得したURLを開けば、取得したい本文を得ることができるので
そのURLから本文を得る方法を知りたいと思いました。
Perl Tips | Java で、サイトにアクセスして HTML を取得する方法
http://perltips.twinkle.cc/java/get_html.php
で取得できるか試してみます
スクリプトでHTMLには書いてないと困っちゃいますけど・・・
0757デフォルトの名無しさん
2009/06/06(土) 13:18:24すみません、djunitのjcoverage.serについて教えて下さい。
Eclipse上でソース選択して実行などとするとjcoverage.serができますが、
Antから実行するとjcoverage.serができない現象で躓いています。
このjcoverage.serが存在しないとカバレッジのレポートが作成できないというのはわかったのですが、
Antで<djunit>を実行した際のserファイルの作成をAntに組み込む方法を教えて頂けないでしょうか。
<target name="djunit_xml" depends="mkdir_djunit_report_xml_dir" description="djUnit実行">
<delete dir="${dir_djunit_report_xml}" /> <!-- xml出力先削除 -->
<mkdir dir="${dir_djunit_report_xml}" /> <!-- xml出力先作成 -->
<taskdef classpath="${lib_path_djunit}" resource="djunittasks.properties" />
<djunit targetSrcDir="${dir_src_test}" printsummary="yes" virtualmock="yes" coverage="yes" asmversion="asm" showoutput="on" >
<formatter type="xml" />
<classpath>
<pathelement path="${dir_bin}" />
<pathelement path="${lib_path_djunit}" />
<!-- 以下略(JUnit、asm、oro等です) -->
</classpath>
<batchtest todir="${dir_djunit_report_xml}">
<fileset dir="${dir_src_test}">
<include name="**\*Test.java" />
</fileset>
</batchtest>
</djunit>
</target>
0759デフォルトの名無しさん
2009/06/06(土) 17:57:02public static void main(String[] args) {
String text = "";
text = text + String.valueOf((char)(args[0].charAt(1) - 5));
} }
Stringクラスは値の変更が出来ないと思っていたのですが、
textの内容を変更してるように感じるのですけど
どう考えたらよいのでしょうか。
0760デフォルトの名無しさん
2009/06/06(土) 18:01:01変わったのは text であって、String じゃないからねえ。
0761デフォルトの名無しさん
2009/06/06(土) 18:04:550762デフォルトの名無しさん
2009/06/06(土) 18:07:40String text = "";
// String型を参照する入れ物であるtextの参照先を、
// text + String.valueOf((char)(args[0].charAt(1) - 5))で生成されたものに切り替える
text = text + String.valueOf((char)(args[0].charAt(1) - 5));
0763デフォルトの名無しさん
2009/06/06(土) 18:08:43textという同一の変数名で新しくオブジェクトを作って
前のは破棄したということでしょうか
0764デフォルトの名無しさん
2009/06/06(土) 18:10:28text = "bar";
textは変わったけど。 "foo"はどうなった?
0765デフォルトの名無しさん
2009/06/06(土) 18:11:49ごみになったんじゃないでしょうか
0766デフォルトの名無しさん
2009/06/06(土) 18:17:100767デフォルトの名無しさん
2009/06/06(土) 18:24:55変更したいならStringBufferを使いなさいと書籍などで見ました。
StringBufferだと参照はそのままで内容だけを変更できて、
Stringは変数名は同一で別参照にして新たにオブジェクトを
作れるのでしょうか、というのが疑問に思ったのです。
疑問といいますか、よくわかってないですね。
0768デフォルトの名無しさん
2009/06/06(土) 20:46:10いわゆる文字型リテラルが指定された段階でプールにオブジェクトを作成し、そこへのポインタを返す。
同一の文字列が既にプールに在る場合は、そこへのポインタを返す。
0769デフォルトの名無しさん
2009/06/06(土) 23:14:090770デフォルトの名無しさん
2009/06/06(土) 23:16:550771デフォルトの名無しさん
2009/06/06(土) 23:19:49もしそうなら動的に作成された文字列も格納されるのかな。
0772デフォルトの名無しさん
2009/06/07(日) 00:06:09されない。
明示的に String#intern() された奴か、コンパイル時の定数となる文字列だけ
0773デフォルトの名無しさん
2009/06/07(日) 00:11:060774デフォルトの名無しさん
2009/06/07(日) 00:14:46あふれちゃってOutOfMemoryとかにならないよね。
0775デフォルトの名無しさん
2009/06/07(日) 00:15:160776デフォルトの名無しさん
2009/06/07(日) 02:14:11String literals-or, more generally, strings that are the values of constant
expressions (§15.28)-are "interned" so as to share unique instances,
using the method String.intern.
文字列定数はString.internを使って得た一意なインスタンス。
0777デフォルトの名無しさん
2009/06/07(日) 13:03:33できれば書き換えまで行うツールを作りたいのですが、
JavaってVBみたいに文字列を途中で改行して実装したりできますか?
\"に気をつけるくらいで簡単に作れますかね?
\uで文字コードで実装してるのは無視という仕様で問題ありません。
また、そのようなEclipseプラグインがあるなら、教えてください。
0778デフォルトの名無しさん
2009/06/07(日) 14:14:34http://sourceforge.jp/projects/nkf/
0779デフォルトの名無しさん
2009/06/07(日) 14:44:41nkfなんてクソ
時代はqkcだオラ
0780デフォルトの名無しさん
2009/06/07(日) 14:55:560781デフォルトの名無しさん
2009/06/07(日) 15:46:05コピー先のファイルの文字コードは何になるの?
ただし、コピー先のファイルはjavaで新しくする
0782デフォルトの名無しさん
2009/06/07(日) 15:50:49コピーじゃなくてテキストとして読んで、テキストとして書くなら、書いた通りに動く。
0783デフォルトの名無しさん
2009/06/07(日) 15:55:42テキストを読む時と書く時に、それぞれencode指定する。
0784デフォルトの名無しさん
2009/06/07(日) 16:44:33最新版のnkf-2.0.9は開発者が修正忘れていてnkf32dll.cに
130,132c130,135
< if (std_gc_ndx){
< return std_gc_buf[--std_gc_ndx];
< } else {
---
> // if (std_gc_ndx){
> // return std_gc_buf[--std_gc_ndx];
> if (!nkf_buf_empty_p(nkf_state->std_gc_buf)){
> return nkf_buf_pop(nkf_state->std_gc_buf);
> // --
> } else {
を当てないとコンパイルできなかったりする。
0785デフォルトの名無しさん
2009/06/07(日) 16:51:130786デフォルトの名無しさん
2009/06/07(日) 17:06:29くだらない話ですが、Javaって何も返却しないときは
末尾のreturn文って書かないのが通例なの?
サンプルコード打ち込んでいて、ちょっと気になった。
0788デフォルトの名無しさん
2009/06/07(日) 17:07:530789デフォルトの名無しさん
2009/06/07(日) 17:11:29書いても書かなくても問題は無いが、無駄な気がするから書いてない。だけだと思う。
好きずき。
0790デフォルトの名無しさん
2009/06/07(日) 17:25:18次に起動するときプロジェクトを作ってクラスに同じファイル名を打ち込んでって感じでいちいちやってたんですが
javaファイルが10個超えてるときとか結構時間がかかってしまいます
まとめて一気にプロジェクトに入れる方法とかってありますか?
0791デフォルトの名無しさん
2009/06/07(日) 17:32:16とりあえずキミの行動は明らかにおかしい気がする
0792デフォルトの名無しさん
2009/06/07(日) 17:39:16表示する2つのスレッドを起動して、joinしています。
(下記ソース。)
期待動作としては、msg2の表示が途中から出なくなって、
msg1が終了したら、msg2の出力が再開されるのかと思っていた
のですが、msg1/msg2が混在して表示されてしまう。
何が問題なのでしょうか?
joinの仕様を誤解していますかね?
■ソース(main)
PrintMessageWithInterval msg1 = new PrintMessageWithInterval("MESSAGE1", 1000, 15 );
PrintMessageWithInterval msg2 = new PrintMessageWithInterval("MESSAGE2", 3000, 10 );
msg1.start();
msg2.start();
msg1.join();
msg2.join();
0793デフォルトの名無しさん
2009/06/07(日) 18:06:44joinの仕様をどう理解しているか分からないから誤解しているかどうかも分からない。
もしかして、
> msg1が終了したら、msg2の出力が再開されるのかと思っていた
ってことは、msg1.join()がmsg2を止めると思ってる?
msg1.join();
msg2.join();
は単にmainスレッドがまずmsg1の終了を待ち、次にmsg2の終了を待つということで、
msg1とmsg2は互いに止めあったりはしない。
0794デフォルトの名無しさん
2009/06/07(日) 18:08:22うん、joinどころかスレッド自体を誤解しすぎていて、どう誤解しているのか理解できない。
スレッドで期待される動作は、並列に動くことだから。(コア数によっては並列でないこともある)
0795デフォルトの名無しさん
2009/06/07(日) 18:38:58http://java.sun.com/javase/ja/6/docs/ja/api/の場合、://の場所で""の要素も追加されるじゃん
そこで、""の要素を削除したいんだけど、test.remove("");とすると例外が発生してしまう
public void checkUrl(){
List<String> test = Arrays.asList(this.Url.split("/"));
test.remove("");
for(String output:test)
System.out.println(output);
}
なぜ?
0796デフォルトの名無しさん
2009/06/07(日) 18:44:21> 指定された配列に連動する固定サイズのリストを返します。
サイズを変更するならサイズ可変のリストにコピー。
0797デフォルトの名無しさん
2009/06/07(日) 18:44:41あ、そういうことか。
納得です。ありがとう。
0798デフォルトの名無しさん
2009/06/07(日) 18:50:17すいませんずっと使ってるわりによくわかってなくて
javaファイルだけあって別のパソコンとかで起動させる場合って普通どうやるんですか?
0799デフォルトの名無しさん
2009/06/07(日) 18:58:120800796
2009/06/07(日) 18:59:31コピーというのはArrayListやLinkedListなどでtestをラップするって意味ね。
でも、それをやるならプロトコル部分も込みで全体をsplitせずに、
URLに渡してファイル部分やパス部分を得てそれをクラックした方がいいんじゃないかとも思う。
URLのインスタンスを構築するときに正しいURLかどうかも分かるし。
0801デフォルトの名無しさん
2009/06/07(日) 19:01:28うーーーーん;; それはもしかして import の仕方だろうか?
空プロジェクトを作ってから、それに対して、ファイルシステムから import する。
0803デフォルトの名無しさん
2009/06/07(日) 19:11:030804デフォルトの名無しさん
2009/06/07(日) 19:35:27SVNでも使っとけ
0805デフォルトの名無しさん
2009/06/07(日) 19:37:37セッションのロックを実現しててコーヒー吹いた。
0806デフォルトの名無しさん
2009/06/07(日) 20:06:37(「シンボルを見つけられませんでした」と出ます)
実行環境は、jdk1.6.0_13で
javac main関数のあるファイル.java
と実行しています。
大学のパソコンの環境でならこの命令で実行できます。
0807デフォルトの名無しさん
2009/06/07(日) 20:12:01>>1
CLASSPATHに変なもの(おそらくquicktime)が設定されている。
0808デフォルトの名無しさん
2009/06/07(日) 20:16:500809デフォルトの名無しさん
2009/06/07(日) 20:25:25ありがとうございます
0810デフォルトの名無しさん
2009/06/07(日) 21:11:27引数の異なるコンストラクタを作成することになりました。
すでに引数なしのコンストラクタの中には処理が記述してあり、
それをコピー&ペーストして新しいコンストラクタを作成するか、this()を使ってやるか、
どっちが良いのでしょうか?
0811デフォルトの名無しさん
2009/06/07(日) 21:21:50解きながら学ぶJavaよりもう少し上のレベルで、
実用的なテクニックを学べる本が欲しいんですが、
何か良いものありませんか?
0812デフォルトの名無しさん
2009/06/07(日) 21:25:39経験的には、
引数なしのコンストラクタの中身を引数ありのコンストラクタに移動して
引数なしのコンストラクタから引数ありのコンストラクタを呼び出すことが多い。
0813デフォルトの名無しさん
2009/06/07(日) 21:29:09「引数が異なる」とあるが、
経験上で言えば、大抵は引数の一番多いコンストラクタに処理を任せていると思う。
Hoge() { this(null, null, null); }
Hoge(Param param3) { this(null, null, param); }
Hoge(Param param1, Param param2, Param param3) { /* 入力値検査後、処理等 */ }
0814デフォルトの名無しさん
2009/06/07(日) 21:30:13intern()の使い方から逸脱しすぎてるし、そりゃすごい離れ業だわ。
で、intern()したrefはどうやって消してんの?
javadoc読む限りじゃgc対象でもないじゃん。
0815デフォルトの名無しさん
2009/06/07(日) 21:31:42エー 810は親クラスのコンストラクタの中身をコピーして作るとか言ってないか?
>>810
super(...) を使う。
0816デフォルトの名無しさん
2009/06/07(日) 21:35:12this() を使うってどういう風に使うんですか?
0817デフォルトの名無しさん
2009/06/07(日) 21:41:50実用的なテクニックなど無い。実用的って夜のオカズに最適とかか?
やりたい目的をイメージできてるか?出来ていないなら、まずはそこから。
0818デフォルトの名無しさん
2009/06/07(日) 21:42:210819815
2009/06/07(日) 21:44:460820デフォルトの名無しさん
2009/06/07(日) 21:56:05返信ありがとうございます。
プログラミングってそういうものですか@@
「●●を作りたい!」とかの具体的な目標は特に持ってませんでした。
Javaで何ができるのかまだわかってないので、
一通り使いこなせるテクニックが学べる本があればな、と。
まずは目標を作ることから始めてみます。
0821デフォルトの名無しさん
2009/06/07(日) 21:58:57Effective Java は読むべき本だと思います。
この本には実用的なテクニックとその背景にある考え方が説明されています。
0822デフォルトの名無しさん
2009/06/07(日) 22:18:28返信ありがとうございます。
Amazonで見ましたがかなり評価高いですね。
Javaの初心者本を終えてから読んでみます。
あと目標を作ります。
次のステップに進めるように頑張ります。
皆さんアドバイスしてくださってありがとうございました。
0823デフォルトの名無しさん
2009/06/07(日) 22:29:52形は作れるようになったが、そこからの課題は・・・なんでしょう。
やっぱり、次の段階として、ゲームか電卓を作ることになるんでしょうか。
0824デフォルトの名無しさん
2009/06/07(日) 22:35:19Effective Java は初心者本を読み終えた程度だと、かなり難しいよ。
ある程度のプログラムを組んで悩んだ経験がないと全部は理解しきれない。
あと、買うならEffective Javaの第2版の方ね。古い方はもう売っていないと思うけど、念のため。
0825デフォルトの名無しさん
2009/06/07(日) 23:33:04まともなプログラムを作るのはそこらへんの一般人が考えているより
ずっと難しいことだということ
0826おっさんのちら裏
2009/06/07(日) 23:48:19俺はperlとかawkの替わりにテキストデータ処理する目的で使い始めたなぁ。
あと、ゲームのセーブデータの改造、趣味の物理計算、FTP自作してWEBの
簡単更新したりとかもやった(blogの無い時代)。
そういったごく身近な目的がいいよ。モチベーションが維持できる。これ重要。
続けられなければ意味は無いからね。
でも複雑なコントロールは使わないのでグラフィックばっかに知識が偏ったり、
目的のためだから都合のいいC#に浮気したりとか、という落とし穴もある。
今のところWEBアプリ作るようになって出戻ってるがw
0827デフォルトの名無しさん
2009/06/08(月) 00:27:49オブジェクト指向理解してますか?
その様子だと一生理解できないんでしょうけど…
FTP自作できるなら困らないとは思いますがあなたにはjavaもc#もcの延長なんでしょうね。
0828デフォルトの名無しさん
2009/06/08(月) 00:31:190829デフォルトの名無しさん
2009/06/08(月) 00:40:180830デフォルトの名無しさん
2009/06/08(月) 00:50:220831デフォルトの名無しさん
2009/06/08(月) 01:25:250832デフォルトの名無しさん
2009/06/08(月) 01:34:42{
if(image == null)
return;
g.setColor(Color.white);
g.fillRect(0,0,800,640);
Random rnd=new Random();
for(int i=0;i<image.length;i++)
{ //座標(x.y)を設定
int x=(int)(rnd.nextDouble()*(getSize().width-image[i].getWidth(this)));
int y=(int)(rnd.nextDouble()*(getSize().height-image[i].getHeight(this)));
g.drawImage(image[i],x,y,this); //画像を描写
}
}
画像を描写するプログラムの描写部分なのですが上のプログラムは
画像をオリジナルサイズでウィンドウ上にランダムに描画する ようになっているんですが
これを画像を一定のサイズ(80×80)で順番に並べて描画する ようにしたいんですがどうすればいいんでしょうか?
int x=(int)(rnd.nextDouble()*(getSize().width-image[i].getWidth(this)));
int y=(int)(rnd.nextDouble()*(getSize().height-image[i].getHeight(this)));
の部分を変えたらいいのはわかるのですが、どう変えたらいいのかさっぱりわからないんです。
0833デフォルトの名無しさん
2009/06/08(月) 01:46:33Perl OO なめてなんかないけど、
中途半端なモジュール(クラスじゃないよw)作られるのが一番困る。
>>832
> int x=(int)(rnd.nextDouble()*(getSize().width-image[i].getWidth(this)));
とりあえず rnd.nextDouble() を消したらどうなるか見てみよーか
0834デフォルトの名無しさん
2009/06/08(月) 01:50:160835デフォルトの名無しさん
2009/06/08(月) 01:59:210836デフォルトの名無しさん
2009/06/08(月) 02:07:23からだと
0837デフォルトの名無しさん
2009/06/08(月) 02:14:200838デフォルトの名無しさん
2009/06/08(月) 08:18:20g.drawImage(image[i],x,y,x+80,y+80,this);
もっと引数が多い版あります
0839デフォルトの名無しさん
2009/06/08(月) 08:28:37JavaScriptなめすぎ。
0840デフォルトの名無しさん
2009/06/08(月) 08:37:54はやく名前かえりゃいいのに
0841デフォルトの名無しさん
2009/06/08(月) 08:44:16紛らわしいから改名すりゃいいのに
0842デフォルトの名無しさん
2009/06/08(月) 08:51:060843デフォルトの名無しさん
2009/06/08(月) 09:17:260844デフォルトの名無しさん
2009/06/08(月) 10:17:24この辺が参考にならんかな?
http://d.hatena.ne.jp/hituziotoko/20070815/1187195425
djUnitは、Eclipse上でしか使ってない。
antの場合は、今まで通りcoberturaを使ってる。
coberturaのHTMLエクスポートはグラフィカルなんで
Eclipseが無い環境ではこれが気に入ってる。
0845デフォルトの名無しさん
2009/06/08(月) 10:32:13レスありがとうございます。
MINAはちょと時間がかかりそうだったのでJettyというのを利用することにし、
とりあえず、『何もしないプロキシ』は作れました。
が、新たに問題発生。
doFilterでブッ込めばいいかなと甘い考えでいたのですが、考えてみたら、
HttpServletRequestには、getHeaderはあっても、setHeaderがないのです。。。
楽にリクエストヘッダに付加する術はないでしょうか。
よろしくお願いいたします。
0846デフォルトの名無しさん
2009/06/08(月) 11:41:52Socketを使用して簡単なネットワークアプリを作っています。
Windows上でサーバ(SocketServer)を起動し、クライアントで接続する事はできました。
このサーバをLinux上で実行させたところ、サーバ自体は動いていますが、クライアントからの接続で下記例外が発生します。
--
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
--
コネクションが拒否されているのですが、何が問題でしょうか?
Linux側の環境は、CentOS5.3、JavaはOpenJDK6、VMで立てたサーバでファイアウォールは切っています。
サーバの実行ユーザは一般ユーザ(admin)とrootの両方で試しましたが同じでした。
Windowsからtelnet でポートを指定した場合はサーバのログに反応があるのでポートは開いていると思います。
0847846
2009/06/08(月) 11:43:02Linux側の設定や実行方法の問題であれば、誘導願います。
0848デフォルトの名無しさん
2009/06/08(月) 12:10:27ECMAScriptと呼んでみるテスト。
0849847
2009/06/08(月) 12:10:39パーミッションがLinux版の場合は厳しくなっているのが原因です
以下のポリシーファイルを修正することで解決しました。
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/security/java.policy
0850デフォルトの名無しさん
2009/06/08(月) 12:38:01ecma-262とjsは違う。標準化された言語仕様とその実装だ。
0851デフォルトの名無しさん
2009/06/08(月) 12:57:00既にこのスレでも山ほど出てるだろ
文字列プールなんて言葉まで出てきているのに、何が不満だ
0853デフォルトの名無しさん
2009/06/08(月) 18:15:170854デフォルトの名無しさん
2009/06/08(月) 18:19:590855デフォルトの名無しさん
2009/06/08(月) 18:22:23消すと何かいいことあんの?
0856デフォルトの名無しさん
2009/06/08(月) 18:24:500857デフォルトの名無しさん
2009/06/08(月) 18:28:33ヒープサイズの設定を行えるものはありますか?
0858デフォルトの名無しさん
2009/06/08(月) 18:38:32出来ないもんなのかと思ってexewrap調べた俺はなんなの?
-a <vm-args> アプリケーション実行時の VM 引数を指定します。
0859デフォルトの名無しさん
2009/06/08(月) 19:05:21String.intern()した文字列はどこに格納されてSUNやOPEN JDKの実装ではどうやって消してるんですか?
このあたりを聞いてるのですが・・
0860デフォルトの名無しさん
2009/06/08(月) 19:11:500861デフォルトの名無しさん
2009/06/08(月) 19:13:52ハァ?
0862デフォルトの名無しさん
2009/06/08(月) 19:13:591行目を100回音読しろ
頭おかしいから
0863デフォルトの名無しさん
2009/06/08(月) 19:15:130864デフォルトの名無しさん
2009/06/08(月) 19:18:230865デフォルトの名無しさん
2009/06/08(月) 19:24:580866デフォルトの名無しさん
2009/06/08(月) 19:35:030868デフォルトの名無しさん
2009/06/08(月) 21:15:18ぶはは、javaもc#もcの延長。は否定できないな。
でも、リスナとかawtってOOPの理解無しには使えないだろ?
古典のデザインパターン程度の基本は押さえざるを得ない。
ただ、OOPなんてものは手段であって、目的にならない。
目的のない勉強なんてクソ食らえだ。
0869デフォルトの名無しさん
2009/06/08(月) 21:21:42俺の環境だとうまく行くんだが。
Runtime.getRuntime().maxMemory()で確認すると確実
0870デフォルトの名無しさん
2009/06/08(月) 21:21:530871デフォルトの名無しさん
2009/06/08(月) 21:56:46OO関係ないじゃんw
0872デフォルトの名無しさん
2009/06/08(月) 21:57:560873デフォルトの名無しさん
2009/06/08(月) 22:07:00消さないとintern()しまくったときメモリエラーでJVMが落ちませんか?
簡単な攻撃方法だと思うんですけど・・
0874デフォルトの名無しさん
2009/06/08(月) 22:12:07最終的にメモリが足んなくなって例外返すだけだろバーカ
0875デフォルトの名無しさん
2009/06/08(月) 22:16:56放置しろ放置。
0876デフォルトの名無しさん
2009/06/08(月) 22:18:10internはListのとは一味違いますよ?
0877デフォルトの名無しさん
2009/06/08(月) 22:21:44おわり
0878デフォルトの名無しさん
2009/06/08(月) 22:22:05ちょっと埋めてやる。
0879デフォルトの名無しさん
2009/06/08(月) 22:22:18.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0880デフォルトの名無しさん
2009/06/08(月) 22:22:210881デフォルトの名無しさん
2009/06/08(月) 22:22:27.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0882デフォルトの名無しさん
2009/06/08(月) 22:22:34.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0883デフォルトの名無しさん
2009/06/08(月) 22:22:41.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0884デフォルトの名無しさん
2009/06/08(月) 22:22:450885デフォルトの名無しさん
2009/06/08(月) 22:25:390886デフォルトの名無しさん
2009/06/08(月) 22:29:050887デフォルトの名無しさん
2009/06/08(月) 22:29:500888デフォルトの名無しさん
2009/06/08(月) 22:30:32そのうち抽象クラスやインターフェースが出てきそうだ
0889デフォルトの名無しさん
2009/06/08(月) 22:34:210890デフォルトの名無しさん
2009/06/08(月) 23:07:22君いたなニートじゃないんでヒマがないんですよ・・・
0891デフォルトの名無しさん
2009/06/08(月) 23:12:02ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7478&forum=12&start=40
これでいいんだろ?
0892デフォルトの名無しさん
2009/06/08(月) 23:14:29時間が作れない連中は無能評価されているのはわかるか?
0893デフォルトの名無しさん
2009/06/08(月) 23:15:17荒らすなボケ
0894デフォルトの名無しさん
2009/06/08(月) 23:30:11PCにつきっきりでないと何も出来ない無能君なのか?君は
暇がなさそうなのは分かるよ
誤字ってるからね
0895デフォルトの名無しさん
2009/06/08(月) 23:31:300896デフォルトの名無しさん
2009/06/08(月) 23:33:11ありがとうございます。
といっても言語仕様にのってないところだったんで S U N や O P E N JDK の実装ではどうなってるかなんですけど。
0897デフォルトの名無しさん
2009/06/08(月) 23:33:540898デフォルトの名無しさん
2009/06/08(月) 23:34:38こんなクズに答えてる奴も死ねよ。
0899デフォルトの名無しさん
2009/06/08(月) 23:37:360900デフォルトの名無しさん
2009/06/08(月) 23:39:520901デフォルトの名無しさん
2009/06/08(月) 23:49:14そもそもスレ違い
0902デフォルトの名無しさん
2009/06/08(月) 23:50:540903デフォルトの名無しさん
2009/06/08(月) 23:52:03public class Sample {
static String a="abc";
static String b;
public static void main(String[] args) {
b="";
b=b+'a'+'b'+'c';
if(b==a){
System.out.println("ok");
}
}
}
0904デフォルトの名無しさん
2009/06/08(月) 23:58:460905デフォルトの名無しさん
2009/06/09(火) 00:02:410906デフォルトの名無しさん
2009/06/09(火) 00:04:48>643
0907デフォルトの名無しさん
2009/06/09(火) 00:06:07を使う癖つけろ
0908デフォルトの名無しさん
2009/06/09(火) 00:08:420909デフォルトの名無しさん
2009/06/09(火) 00:09:420910デフォルトの名無しさん
2009/06/09(火) 00:12:480911デフォルトの名無しさん
2009/06/09(火) 00:14:58勝手に画面系だと創造してみる
0912デフォルトの名無しさん
2009/06/09(火) 00:49:490913デフォルトの名無しさん
2009/06/09(火) 00:59:35>>912
>>1
0914デフォルトの名無しさん
2009/06/09(火) 01:13:12誤動作のもとだろ文字比較厳密にやらんと
もしもっと良い方法有るなら教えて欲しいけど
ところにより作法違うんだねこの辺
0915デフォルトの名無しさん
2009/06/09(火) 01:34:190916デフォルトの名無しさん
2009/06/09(火) 01:35:45よくバグらないな
0917デフォルトの名無しさん
2009/06/09(火) 01:48:23別に非難してるわけじゃないからね
ただ最初にこの作法で覚えちゃったから驚いただけ
0918デフォルトの名無しさん
2009/06/09(火) 01:54:08自分は何の努力もしてないのに人を非難するだけじゃ、いつまでたっても友達は出来ませんよ。
0919デフォルトの名無しさん
2009/06/09(火) 02:00:260920デフォルトの名無しさん
2009/06/09(火) 02:11:50厳密な比較って言っただろ?
文字列の厳密な比較って言ったら大文字小文字無視はまずくね?
比較する場合って汚染された値の場合が多いんだがそうじゃなきゃ最初から大文字か小文字どっちかに統一して文字列持ってるかじゃないの?
0921デフォルトの名無しさん
2009/06/09(火) 02:24:16でも混在そのものが厳密じゃないじゃん
0922デフォルトの名無しさん
2009/06/09(火) 02:25:270923デフォルトの名無しさん
2009/06/09(火) 09:11:32・String に == は使うな。equals() を使え。
0924845
2009/06/09(火) 09:25:25Jettyのorg.mortbay.servlet.ProxyServletをほぼ流用で出来ました。
Proxyサーバからリクエスト先に投げるHttpServletRequestに、
クライアントからのリクエストのヘッダを全部にコピーする処理のところで、
情報付加の目的が果たせました。
0925デフォルトの名無しさん
2009/06/09(火) 11:26:51俺も最近弄り始めたんだよなあれ
JERONIMOが今一良くわからん
0926デフォルトの名無しさん
2009/06/09(火) 11:37:29サンプルが最初からあれこれ付いてるのがいい。
今はNIOのFileChannelとバッファをもっと簡単に使える
自分用APIをシコシコと作ってる。
入出力も、同じメソッドの引数を1つ変えるだけで
ByteBuffer#allocate()とかdirectAllocate()とか
ByteBuffer.MAP_MODEなんかを自由に使い分けられる。
できあがったら、ひっそりとgoogle codeあたりで
apacheライセンスで流してみよう。。。
0927デフォルトの名無しさん
2009/06/09(火) 14:07:56ラップしてBufferedWriterクラスを使えば効率が良くなって
さらにラップしてPrintWriterクラスを使えばもっと効率が良くなって・・・
らしいのですが、ということは、
大抵の人は、PrintWriterクラスを使うと考えていいのでしょうか。
0928デフォルトの名無しさん
2009/06/09(火) 14:35:03Win32APIのTreeViewではできたんだが、JTreeでどうやるのか
さっぱり分からない
0929デフォルトの名無しさん
2009/06/09(火) 14:42:19nodeにname設定すれば表示されね
0930デフォルトの名無しさん
2009/06/09(火) 14:44:120931デフォルトの名無しさん
2009/06/09(火) 14:56:11name設定とは?ググッても一つもヒットしない・・・
やりたい事は、ノートが選択されたら、その各ノードごとの
処理をするという単純なことなんだけど
今までやってたWin32APIだと、各ノードごとに数値を設定して
swich分で処理するとい単純な処理で出来たけれど
JTreeだとどうしていいやら・・・
getUserObjectでテキスト値取得して判別する処理でやったら
同じテキスト値があったので駄目でした、同じテキスト値でも
格ノードで別の処理をしたいので
0932デフォルトの名無しさん
2009/06/09(火) 15:02:58...i586.exe
...i586-p.exe
...i586-p-s.exe
など、配布ファイル名が複数ありますがどういう意味なんでしょうか?
0933デフォルトの名無しさん
2009/06/09(火) 15:17:330934デフォルトの名無しさん
2009/06/09(火) 15:17:560935デフォルトの名無しさん
2009/06/09(火) 15:18:170936デフォルトの名無しさん
2009/06/09(火) 15:21:37Java言語以前に日本語もままならないのかも。
0937デフォルトの名無しさん
2009/06/09(火) 15:23:21Name って java.awt.Component じゃないの?
TreeXxxListener もあるけど。
0938デフォルトの名無しさん
2009/06/09(火) 15:32:08TreeViewと勘違いしてる
0939デフォルトの名無しさん
2009/06/09(火) 15:37:49それらしきものはないですね
>>937
java.awt.Component?
それをどう応用したら良いか分からんのですが
>>938
TreeViewにはあったんですけどね
0940デフォルトの名無しさん
2009/06/09(火) 15:42:21それじゃダメなの???
0941デフォルトの名無しさん
2009/06/09(火) 15:45:32少しチュートリアル読んでみたら?
0942デフォルトの名無しさん
2009/06/09(火) 15:46:09はい、その事は>>931で書きました
Stringで指定したテキストを取得して判別していたのです最初は
でも、同じテキストのノードがあって駄目だったんですよ
同じテキストでも、違うノードなら違う処理をさせたいので
で、それぞれのノードに個別の数値を設定できたら良いなと思ったんですが
その方法が分からなくて
0943デフォルトの名無しさん
2009/06/09(火) 15:46:14各ノードに個別のインデックス値を設定する必要があって
それを実現する方法がJTreeに無いなら、
JTreeを継承して新たなクラスを作ればいいのでは?
0944デフォルトの名無しさん
2009/06/09(火) 15:50:03チュートリアルは読んでみたんですけどね
ちょっとここ1週間行き詰っているので、何かヒントもらえませんかね
>>943
個別のインデックス値を返すメソッドの作り方が思いつきません・・・
0945デフォルトの名無しさん
2009/06/09(火) 15:50:16.equals()で同一と認識されるものなのかと言う話はあるけど
後者なら俺は普通に同じテキスト表示されてるよ
0946デフォルトの名無しさん
2009/06/09(火) 15:53:08そういえばNodeは何を拡張した??
0947デフォルトの名無しさん
2009/06/09(火) 15:58:190948デフォルトの名無しさん
2009/06/09(火) 16:00:21君、いつも一言多いんだよね。友達少ないでしょ?w
0949デフォルトの名無しさん
2009/06/09(火) 16:00:50DefaultMutableTreeNodeです
ああ、さっぱり分からない
1週間悩んでとうとうここで相談することにしたんですけど
なんとかなりませんか
0950デフォルトの名無しさん
2009/06/09(火) 16:01:21普通はね
0951デフォルトの名無しさん
2009/06/09(火) 16:02:34super(String)で作って有るんだよね
0952デフォルトの名無しさん
2009/06/09(火) 16:04:56それ以前にname設定とか言ってる時点で>>929はただの馬鹿でしょ
0953デフォルトの名無しさん
2009/06/09(火) 16:06:13((DefaultTreeModel)jTree1.getModel()).reload();
addした後でこれやった?
0954デフォルトの名無しさん
2009/06/09(火) 16:11:53やってみましたが、解決の手段にはならないようですが・・・
0955デフォルトの名無しさん
2009/06/09(火) 16:13:29その辺だね
0956デフォルトの名無しさん
2009/06/09(火) 16:16:530957デフォルトの名無しさん
2009/06/09(火) 16:23:38うーん?何か話がおかしな方向へいってませんか?
えーと、やりたい事はシンプルで
JTreeのノードが選択されたときに、その選択されたノードごとの
処理を行いたいのです
最初に行った方法は、(String)node.getUserObject()で
ノードに設定されたテキストを取り出して、そのテキストごとに
処理させるという方法でした
しかし、この方法だと、テキストが同じノードがあった場合
同じ処理に飛ばされてしまいます
同じテキストでも、違うノードなら、違う処理がしたいのです
ノードが選択されたとき、それが同じテキストであっても
別のノードだと判別する簡単な方法はありますか?
0958デフォルトの名無しさん
2009/06/09(火) 16:30:330959デフォルトの名無しさん
2009/06/09(火) 16:33:090960デフォルトの名無しさん
2009/06/09(火) 16:38:46TreePath selected = jTree1.getAnchorSelectionPath();
ChartTreeNode node = (ChartTreeNode)selected.getLastPathComponent();
return node;
例だけど
こういうのでちゃんとセレクトされてるかどうか
普通の人では起こらない現象だからどこか変な箇所が有ると思うよ
0961デフォルトの名無しさん
2009/06/09(火) 16:43:11つかNodeの違いを調べたいのに
わざわざ表示されてる文字列を取得するとはコレイカニ。
0962デフォルトの名無しさん
2009/06/09(火) 16:43:460963デフォルトの名無しさん
2009/06/09(火) 16:51:21難しいな
0964デフォルトの名無しさん
2009/06/09(火) 17:16:49少なくとも人格攻撃は不要だと思います。
0965デフォルトの名無しさん
2009/06/09(火) 17:18:040966デフォルトの名無しさん
2009/06/09(火) 17:18:062〜3日すれば平常に戻ります。たぶん。
0967デフォルトの名無しさん
2009/06/09(火) 17:18:500968964
2009/06/09(火) 17:40:180969デフォルトの名無しさん
2009/06/09(火) 17:40:540970デフォルトの名無しさん
2009/06/09(火) 17:58:45ゴズリンなんか神だけどどう接するの?
というか、どうやってその人が神か分かるんだ?
0971デフォルトの名無しさん
2009/06/09(火) 18:00:210972デフォルトの名無しさん
2009/06/09(火) 18:04:39今は新型のクローラプログラム作ってる
0973デフォルトの名無しさん
2009/06/09(火) 18:05:04あるのですけど、配列のような感じがすます。
これらをコレクションというように呼ぶのはどういう感触なんでしょうか。
コレクションというと収集というイメージなんですけど。
何故コレクションと呼ぶのか、イメージが涌きません。
0974デフォルトの名無しさん
2009/06/09(火) 18:35:35まさにコレじゃん。
0975デフォルトの名無しさん
2009/06/09(火) 18:43:20集合って意味合いなのかい?
0976デフォルトの名無しさん
2009/06/09(火) 18:44:31それとも
便利で有用なクラスを収集してまとめたものなんですか。
0977デフォルトの名無しさん
2009/06/09(火) 18:47:15x = e.getX(); y = e.getY();
TreePath path = tr.getPathForLocation( x, y );
if( path != null ){
DefaultMutableTreeNode slct = (DefaultMutableTreeNode)
path.getLastPathComponent();
tmp = category;
n = tmp.length;
for (i = 0; i < n; i++)
if (tmp[i].equals(slct) == true)
break;
} else return;
if (i >= 3) {
choiceRightClick = i;
俺の駄ソースから、このchoiceRightClickがindexな悪寒
0978977
2009/06/09(火) 18:59:03DefaultMutableTreeNode[] category = new DefaultMutableTreeNode[n + 1];
category[0] = new DefaultMutableTreeNode( "A" );
for(i = 0; i < n + 1; i++) {
category[i] = new DefaultMutableTreeNode( "Test" );
category[0].add( category[i] );
}
JTree tree = new JTree(category[0]);
0979977
2009/06/09(火) 19:00:120980928
2009/06/09(火) 19:04:23>>958
えーと、ノードで比べてるんじゃなくて上にも書いたとおり
選択されたノードに表示されてる文字列で比べているので
表示されてるテキストが同じなら、同じになってしまうのです
>>959
参照しているアドレスで比較しても、同じテキストなら
同じ処理がされしまうわけで・・・
>>960
DefaultMutableTreeNode node =
(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if (node != null){
String data = (String)node.getUserObject();
DefaultTreeModel tm = (DefaultTreeModel)tree.getModel();
tm.nodeChanged(node);
}
>>977-978
ちょっと今から見て考えてみます
0981デフォルトの名無しさん
2009/06/09(火) 19:06:35Nodeコピーして作成して無いかって事な
そもそもデバッグして自分で発見できる範囲のことだろこれ
0982デフォルトの名無しさん
2009/06/09(火) 19:08:14初歩的なコードミスっぽいよな
0983デフォルトの名無しさん
2009/06/09(火) 19:12:210984デフォルトの名無しさん
2009/06/09(火) 19:13:07>同じ処理がされしまうわけで・・・
これが既に意味わかんない
0985デフォルトの名無しさん
2009/06/09(火) 19:14:08Java SE Development Kit (JDK)をDLして
保存したはずなんですがインストール方法
がいまいちわかりません。
jdk-6u2-windows-i586-p.exeファイル名もないのですが。
0986デフォルトの名無しさん
2009/06/09(火) 19:16:020987デフォルトの名無しさん
2009/06/09(火) 19:18:35http://pc12.2ch.net/test/read.cgi/tech/1244542623/
次
0988デフォルトの名無しさん
2009/06/09(火) 19:21:59DefaultMutableTreeNode node2 = new DefaultMutableTreeNode( "A" );
質問者は上の2文を実行した時 node1==node2 になるのは分かってる?
0989デフォルトの名無しさん
2009/06/09(火) 19:22:120990988
2009/06/09(火) 19:22:370991デフォルトの名無しさん
2009/06/09(火) 19:23:08>>985
インストール用のファイルが無いなら再ダウンロード。
まぁ、JDK 無くとも JRE 有れば Eclipse は動くから。
0992デフォルトの名無しさん
2009/06/09(火) 19:24:50ノードの参照アドレス比較しろよって言ってるのに、頑なにテキストの比較しようとしてるよな。
そういう持ちネタなのかと思えてきた。
0993977
2009/06/09(火) 19:29:19node1.toString().equals(node2.toString())は等しいけど、
node1.equals(node2)は等しくはないよね?
0994デフォルトの名無しさん
2009/06/09(火) 19:35:04>>987乙
ありがとん
0995デフォルトの名無しさん
2009/06/09(火) 19:38:01node1 = node2;
にしないとtrueにならんね
簡略でごめん
0996デフォルトの名無しさん
2009/06/09(火) 19:40:02だ
更にごめん
0997デフォルトの名無しさん
2009/06/09(火) 19:42:59DefaultMutableTreeNode node2 = new DefaultMutableTreeNode( "A" );
System.out.print(node1==node2);
System.out.print(node1.toString().equals(node2.toString()));
System.out.print(node1.equals(node2));
上からfalse,true,false
0998デフォルトの名無しさん
2009/06/09(火) 19:45:420999デフォルトの名無しさん
2009/06/09(火) 19:46:04俺が疑ってるのはNodeを生成してaddする際に
Node node2 = node1;
にして無いかって事だな
俺らからするとありえんけどな
1000デフォルトの名無しさん
2009/06/09(火) 19:47:3210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。